Make all basis set projectors give an orthonormal wfn guess

The standard non-relativistic version was updated June 8.
Introducing MixedBasisArray
Fixing the basis set projector for RMB basis

…which was completely wrong when originally written.

The meat of this change was accentually included in a previous commit focusing on orthonormal guess.
I use MixedBasisArray<SmallInts1e_London<ComplexOverlapBatch>> to build the small component mixed-overlap matrix.
That's fine, but it added a new constructor for ComplexOverlapBatch.  Properly SmallInts1e_London should be a variadic template, but
storing optional arguments for use later on is not straightforward.
Avoid recalculating integrals when we only need zsmall_ for projection.
Making SmallInts1e_London a variadic template

This makes it more general and gets rid of a stupid extra constructor for ComplexOverlapBatch, but I'm not sure it's a net gain given the ugliness needed to pass optional parameters on to the integral batches.
Eliminates Reference_London and RelReference_London

Their functionality is merged into RelReference; the main complication (a complex coefficient matrix) is the same.

Relevant to #38
Avoid hiding non-virtual base class member functions

ZMatrix::tildex(…) and ZMatrix::inverse()
Minor cleanup & fix

nvirt was wrong for the last one, but not used.
Small bug fix and minor cleanup

The bug fix:  If we first ran calculations with a finite magnetic field and provided a new geometry with zero field, the vector potentials would not change.  Nothing in the paper should be affected by this.
Basis set projection allows smooth transitions between GIAO and Gaussian methods when appropriate.

Also removes RelReference::giao_, which is not needed.
Removing the projection between standard and GIAO basis sets.

Didn't work with relativity, because zsmall_ is not defined.  The workarounds seem to be more trouble than they're worth.
Merging RelDF and RelDF_London.  Part of #38
Oops
Merge DFock and DFock_London.  Part of #38
Minor fix to Dirac initial guess
Merging Dirac and Dirac_London.  Part of #38
Apparently isnan(double t) does not compile with some builds.
std::isnan(double t) seems to work.

Namespace issue, I guess
Making ComplexDF functions override virtual functions from standard DF where possible

This should make the merging of Fock and Fock_London much smoother.  I have a problem, though, with form_2index(…) since it has the same arguments but a different return type.  Relates to #38
Merging SCF_base and SCF_base_London as a template

Not quite done; I need a specialized template function (or something) to get the coefficients from Reference.  Part of #38