Changed scaleTo and scaleOutNorm methods to const to make ITensor::scale_ field no longer mutable. Should help with threading logic.
Removed special ITmaker constructors from ITensor and IQTensor in favor of free-standing static initialization methods in cc files (or other pre-existing constructors in the simpler cases).
Removed IQTensor block iterator methods in favor of using .blocks() directly. Removed dat() and ncdat() workaround - no longer need since switching to shared_ptr. Renamed ITensor::index to ITensor::indices and added similar method to IQTensor.
Added templated method dir for determining direction of a particular index.
Renamed index_in_common to commonIndex in keeping with code conventions.
Updated implementations of IQTensor Dot and BraKet. Added related unit tests.
Removed findindex methods throughout library except from IndexSet.
Reduced use of ITensor::index(int) throughout library.
Deprecated ITensor::index(int), ITensor::m(int), and ITensor::val1(int).
Added complex case to non-contracting product.
Fixed conj() for complex tensors. Fixed tevol.cc to compile with latest changes.
Small cleanup of iqindex.h/cc.