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