Working on gauge-invariant Dirac-Fock.  Compiles, but is incomplete.

Still need to adapt RelHCore.  Currently I'm using RelDF_London, which like RelDF has real and imaginary parts…  both of which are complex.  Something about that will have to change.
Building the remaining pieces of gauge-invariant Dirac-Fock.

Compiles, but segfaults when called.  As before, I'm making copies of nearly everything needed for the time being.
Some fixes, including setting up SmallERIBatch and MixedERIBatch versions for London orbitals.

Now, it runs to completion at zero-field, but converges to the wrong energy.  With a magnetic field some ZMatrix gets flagged as nonhermitian.
Merge branch 'integral' of github.com:shiozaki/BAGEL into gauge

# By Hai-Anh Le
# Via Hai-Anh Le (9) and others
* 'integral' of github.com:shiozaki/BAGEL: (67 commits)
  fix R1
  this line deserves a comment
  angular integral fixed
  bug fix
  fix the nuclear repulsion and more
  Contraction outside of the integral evaluation
  bug fix (ecp_r_power now follows Molpro's convention)
  bug fix
  ECP integral batches in hcore and sohcore_base
  The number of core electrons should be in Atom, instead of Shell_ECP.
  ecpbatch needs to be verified.
  quick fix
  bug fix
  made some stupid mistakes earlier, but RnBatch'es should now work for multiple zetas
  bug fix
  angularbatch integrals done in ecpbatch. To be checked…
  make ecp object
  more code to implement the angular integral
  minor
  add some functions to SphHarmonics
  ...

Conflicts:
	src/molecule/Makefile.am
	src/molecule/shell.h
Bug fix.
Bug fix
Cleanup

Since all functions here are on the same center, the phase factor cancels out, and there's no need to use ComplexOverlapBatch.
Bug fix
Bug Fix!!  Dirac-Fock converges to a reasonable, gauge-invariant number.

Still need to verify the result.
Convergence is slow - For hydrogen fluoride it takes 46 iterations, as opposed to 13 with no magnetic field.
Conceptually it seems like a similar change should be needed in smallints1e_london.h, but I haven't fully parsed how that works yet.
Same fix, for mixed Large/Small integrals.

As long as I'm thinking about it…  should be needed for Gaunt term
minor
Adding a test case for gauge-invariant Dirac-Fock.

--shorter bond length because it has convergence issues when far from equilibrium geometry
--Seems to be correct; could reproduce literature magnetizabilities to reasonable accuracy, given different approaches
--Compiled and ran distributed across 2 nodes with no problems
minor optimization
Getting started on gauge-invariant ZFCI

Compiles, but it won't run without a Reference object, which I haven't yet implemented for London orbitals.
Setting up Reference object for London orbitals.

Minimal functionality at this point - saves output of RHF and can use it for either RHF or Dirac-Fock.  No conversion between London and Gaussian codes implemented.

For now, I'm having Reference_London be a derived class of Reference, similar to the approach used by RelReference.  It will need to be taken into consideration when deciding how to refactor Geometry_London and ZCoeff.  The current approach would require many pointer casts, which I don't really like…
Giving the ability to project from one Geometry_London to another

Included in this commit:
--Generalization of MixedBasis to let it use complex integral batches
--Some fixes in Geometry_London and Atom so the correct magnetic field is used in updates
--Minor cleanup
Turning on relativistic Reference object for London orbitals.

No real difficulties were encountered.
London ZFCI seems to be working at zero-field; with magnetic field it complains about Kramer's symmetry.
Optimization of gauge-invariant Dirac-Fock

--Test of AsF3 on my laptop at -O0 now takes 7 seconds per iteration, vs. 5 seconds with the field-free code (and 25 seconds before optimization).
--Almost all these changes revolve around getting rid of unnecessarily complex objects.
--The redundancy of the complex density fitting codes has increased, but only temporarily.
Bug fix

The repulsion between two finite nuclei was being miscalculated, but only when BEYOND_DOUBLE is set.  finite_nucleus() returns a bool, not the actual value needed.
Activating finite nucleus for London codes