removing storage name from Metadata as first class citizen, replacing it with annotations (merged with emils changes)

Merged with Emil's changes and incorporated previous CR feedback

@anpete @emilcicos 
SchemaQualifiedName does some extra magic that I wanted to avoid here (it basically strips away the quoting on type, if it was provided. So that if your table name was "[Foo]", you would get "Foo" back. We want all those names to be stored verbatim, so that table/key/column/whatever name is exactly what user provided.