Added covariant read-only BoxR trait

This allows Box instances to be passed as BoxR in cases where they do
not need to be written, and then used in a covariant way. Note that
BoxR instances are NOT immutable - they may change value, but the BoxR
trait does not allow changing directly. All Boxes are still mutable.