Add CopyStorageClasses template and allow access to ConstOf and others.

Please see https://github.com/D-Programming-Language/phobos/pull/2562 for context.

This change adds a CopyStorageClasses template based on the existing ModifyTypePreservingSTC template. It also makes MutableOf, InoutOf, etc. public so that they can be used in user code.
It's just an identity template with a misleading name, lumped in with a bunch of templates unrelated to it as a sort of no-op state. A quick grep suggests it's only used for genericity (i.e. being able to pass the `MutableOf` template itself to an alias parameter to mean "no change"), in which case I can maybe see its use, but then it really should be called something else, because it has nothing to do with mutability.