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 
Similar to EntityType annotations comment. I would move this logic to a GenerateKeyAnnotations method, which can handle the special strings.