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.
They're not storage classes, they're type qualifiers. Also `$(Shared)` should be `$(D shared)`. Should enumerate all the qualifiers it copies, not have statements like `such as`.