Fixed on-site fermion sign convention in Hubbard Model class to order states as up first, then down (if thinking of split sites of spinless fermions).
DMRGWorker now checks DebugLevel option in Global::opts.
Added tJ Model and Hamiltonian MPO builder tJChain.
Added error checks to IQTensor::randomize.
Templated IndexSet over the Index type. Split Counter into its own header file.
Cherry-picked from thread branch: changed Index and ITensor to use shared_ptr for copy on write rather than intrusive_ptr. Removed std::rel_ops from global namespace.
Combined IndexSet and IQIndexSet into templated class IndexSet<IndexT>. Replaced intrusive_ptr in IQIndex and IQTensor with shared_ptr.
Merge branch 'istemplate'. New feature: merged IndexSet and IQIndexSet classes into IndexSet<IndexT>
Fixed bug where IndexSet uniqueReal not always set correctly. Added unit test indexset_test.cc to version control.
Moved some methods inside indexset.h for readability.
Split QCounter into its own header and made it a subclass of Counter. Fixed IQTensor::randomize to automatically create all missing QN consistent blocks.
Cleaned up Counter and QCounter implementations.
Removed an unnecessary calculation of q.norm() and cleaned up debugging output in Eigensolve::davidson.