Spectrum: better compute bands
There are several things we could consider:
- Allowing to select a sub-range of bands and to use sparse diagonalization (appropriate for large unit cells of a lead or spectra of closed systems).
- Do a better job resolving level crossings once we depend on Debian stretch (see the blog post outlining the algorithm). This one especially leads to better quality plots.
- Perhaps utilize conservation laws if present (both for computation and representation of the bands).