Ownership and borrowing á lá Rust.
<li> TODO Override all members with write checks. See http://email@example.com
<li> TODO Perhaps disable all checking (and unittests) in release mode (when debug is not active), but preserve overloads sliceRO and sliceRW. If not use enforce instead.
<li> TODO Implement and use trait hasUnsafeSlicing
<li> TODO Add WriteBorrowedPointer, ReadBorrowedPointer to wrap ptr access to Container
<li> TODO Is sliceRW and sliceRO good names?
<li> TODO can we make the _range member non-visible but the alias this public in ReadBorrowed and WriteBorrowed