Merge pull request #8 from BTAS/master

sync w BTAS/BTAS
Merge pull request #9 from BTAS/master

Added tieIndex range slicing methods and related TensorView wrappers. Re...
Merge pull request #10 from BTAS/master

sync w BTAS/BTAS
Merge pull request #11 from BTAS/master

sync w BTAS/BTAS
Slight redesign of TensorView to solve const-correctness issues cleanly:
1) switched from StorageRef to std::reference_wrapper (some space saving!)
2) TensorView(range, storage) is now private ... use btas::make_view and btas::make_cview to automatically produce TensorView/TensorConstView
3) constructors from Tensor are now non-explicit  (hence can be cast automatically! DANGEROUS?) ... still: see btas::make_view and btas::make_cview that take non-const/const Tensors
4) move ctor for TensorView is not explicit

See test.C for demonstration.

Resolves #43
Added helped class bool_type
Introduced TensorViewPolicy that allows to specialize TensorView to track write access at runtime. This allows to use the same type for both mutable and immutable TensorView (currently TensorView and TensorConstView are distinct types). The default TensorView policy keeps the current behavior. There is extra space overhead (extra bool) and runtime overhead (optional ... turn off assert to avoid it) if the runtime write tracking is enabled.

see test.C for examples.

amends #53
Merge pull request #53 from evaleev/master

redesign of TensorView