Added ComplexEigenvalues method to matrix library which wraps zgeev to find eigenvalues and right eigenvectors of a general complex square matrix.
Added string (or const char) constructor to OptSet. Processes a string of Name=value pairs delimited by commas. Split option.h code into option.cc file and removed dependency on global.h.
Added support for & operator between Opt objects, OptSet objects, and OptSet initialization strings. Wrote a unit test for OptSet string constructor.
Merge OptSet string constructor feature branch.
Changed Opt to have a fixed type (Boolean, Numeric, String, None) determined by which constructor is called. Allows improved printing of Opt and OptSet. Improved Opt unit tests. Fixed a unit test for IQCombiner.
Fixed bug in Combiner: Combiner now automatically inits before copy so that copies will have the same right Index.
Merge latest bugfix from 'master' into develop

Conflicts:
	itensor/combiner.h
Began working on complex ITSparse. Introduced storage for imaginary part and method isComplex.
Added size() method to ITDat. Improved soloReal() and soloImag() methods to avoid a possible second copy. Changed ITensor::mapElems(Callable f) to work only for real ITensors.
Removed some unused methods from IQTSparse.
Started implementing diagonal-type ITensor to replace ITSparse.
Modified itensor/Makefile while testing Diag type ITensor.
Some minor improvements: added a useful constant to Z3 model; improved printing of Opt; improved printing of OptSet.
Finished initial move of ITSparse functionality into ITensor.
Changed parts of library using ITSparse and IQTSparse to use ITensor
and IQTensor instead. Removed itsparse.h/cc and iqtsparse.h/cc from
Makefiles.
Went through complex ITensor cases in light of new Diag type ITensor.
Caught a bug where one case did not handle Diag correctly.
Updated unit tests to compile. Two svdalgs tests failing currently.
Improved printing of Diag ITensors.
Fixed bug introduced by changes to ITensor::operator*= for case
of real ITensor times a complex ITensor. Code assumes same resulting
Index order for real and imag part but I recently changed the order for
the imaginary part.
Wrote a unit test for most of the basic Diag ITensor features including
contraction with all complex cases covered.
Merge new feature, diagonal ITensors, into develop. Closes #41.
ITensors made using certain constructors (the ones taking a single Real or
a Vector of diagonal elements) now have type ITensor::Diag, accessible
through the ITensor::type() method. This supersedes the ITSparse and
IQTSparse classes. For example, an IQTSparse is now just an IQTensor whose
blocks happen to be diagonal ITensors.