Read in applied magnetic field from input file

--Added the function get_array_optional to input.h, which assigns some default values (i.e., zeros) if array parameter is not present
--Currently, input magnetic field is saved as a member of Geometry but not actually used.
minor
bug fix, apparently

This greatly improves the accuracy of the resolution-of-identity test with magnetic field for multiple atoms, but I'm not certain whether or not it's totally right.
testing interface enhancements

--Can pull out select blocks from real integrals (i.e., MomentumBatch) rather than just the complex versions
--Added a function to compute the mean unsigned error between the elements of two (real or complex) matrices
Use zgesv for complex inversion with improved numerical stability (testing interface)
Compute vector potentials in atom.cc and save this information as a member of Atom and of Shell

The magnetic field ultimately comes from an input file and is stored as a member of Geometry.
For the moment, magnetic_field_ is still hard-coded in Shell.
Remove magnetic_field_ from Shell

The field must now be passed explicitly as an argument of ComplexKineticBatch and ComplexMomentumBatch, as well as some of the testing functions.
also, minor cleanup
minor

--Forgot to update declaration of testing functions in bagel_interface.h
--Adds a function to retrieve the whole magnetic field from geometry, and renames the one to check whether or not it is zero
Merge branch 'master' of github.com:shiozaki/BAGEL into gauge

# By Toru Shiozaki (70) and others
# Via Toru Shiozaki (7) and Shane Parker (1)
* 'master' of github.com:shiozaki/BAGEL: (78 commits)
  (1) MOFile is now using a new version of Fock builder. (2) Avoid unnecessary Fock build in CPCASSCF.
  made the fock(z) term cheaper.
  removed unnecessary fock build. Also this improved the accuracy
  cosmetic
  There was a missing term in Abar.
  apply_2RDM accepts RDMs in non-natural orbital basis
  changes to recover what Matthew has
  NEVPT2 debug for scalapack builds. Had to edit matrix_base.h and (z)matrix.cc due to bugs in scalapack
  using RMS in FCI, ZFCI, RAS, and MEH
  associated changes
  updating CASSCF
  probably fixes matthew's problem. Removes stray debug code
  NEVPT2 test (does not cover every sector, though)
  to compile with clang
  minor
  some minor changes... now nevpt2 runs without closed orbitals. Still something is wrong in parallel
  Adds option to do a Pipek-Mezey "region" localization, including a test case.
  minor comment update
  bug fix. Still something is strange. working on it
  cosmetic changes. Decided to keep the loops (for parallelization)
  ...

Conflicts:
	src/integral/compos/complexmomentumbatch.h
	src/molecule/shell.cc
Setting up density fitting with London orbitals

The code compiles without breaking TestSuite when run locally, but is probably wrong in multiple places

The following classes have been templated (or had template parameters added) to allow type flexibility:
--ParallelDF (base class)
--DFIntTask_OLD

The following classes and functions have new copies that use complex algebra:
--DFDist
--DFHalfDist
--DFFullDist
--DFBlock
--MPI_Interface::request_send
--MPI_Interface::request_recv
Explicit instantiation

Also posts updates to Makefile.am and simple.h which I forgot to include in the last commit.
Apparently RysIntegral was being instantiated with parameters <double, Standard> and <std::complex<double>, Standard>, which I don't think caused any bugs but was wrong.
Merge branch 'master' of github.com:shiozaki/BAGEL into gauge

# By Toru Shiozaki (60) and others
# Via Toru Shiozaki (9) and Matthew MacLeod (2)
* 'master' of github.com:shiozaki/BAGEL: (85 commits)
  completed: interface to geometry optimizer
  suggested changes to generated files
  adjustments in generated files
  allowing the optimizer to see the correlated energy
  one more addition and bug fix
  forgot to add this to X. not sure if this is right - I will see soon
  interfaced to geometry optimizer
  still need to check, but looks reasonable. all the terms implemented.
  minor
  a couple of fixes - some important
  another cideriv fix
  intermediate: more work on core orbitals in grad
  cideriv takes target state
  completed: frozen core in smith
  bug fix in Tensor::diag
  cleanup and stuff
  minor fixes
  Fock made in a better way..
  target state is now consistent. SMITH is localized in a scope. removed all instances of hardwired 0 (ground state)
  nevpt2 is not orbital invariant and had to be updated slightly due to semi-canonicalization
  ...

Conflicts:
	src/df/df.cc
	src/df/df.h

paralleldf.h, paralleldf_impl.hpp, df_london.cc, and df_london.h also updated for consistency
Moving many pieces of Geometry into its base class, Molecule
New version of Geometry intended for use with London orbitals, and associated updates
Adds an input file toggle to switch between Gaussian and London orbital basis sets

Now we can call the complex density fitting architecture, but currently it has bugs.
Added skeletal structure for London orbital methods

For some simple cases, this runs to completion (while skipping the interesting parts).  Sometimes a memory bug shuts it down while constructing Geometry_London
bug fix

While computing ERI Batches for complex density fitting, I was getting overflow-type errors (bus error and segmentation fault) when the giant arrays for interpolation were initialized.  Apparently declaring them static prevents the values from being saved to stack memory.
Allows us to invert a non-Hermitian ZMatrix

Not yet verified
If we use complex auxiliary basis functions, then the 2-index ERI matrix for DF will be complex and symmetric (not Hermitian).
Moving functions for non-Hermitian matrices so they can only be used in DF code
Can now have different phase factors on the primary and auxiliary basis sets