removing storage name from Metadata as first class citizen, replacing it with annotations

@ajcvickers @anpete @emilcicos @natemcmaster 
In addition to the NotNull attribute, use ```Check.NotNull()``` on all public methods.