Added new Tensor class and appropriate subclasses.  This adds the
infrastructure for taking the gradient of a vector.
Added infrastructure so Vector and Tensor can multiply with a Scalar
constant.