This is very dangerous as the code is currently written.  For example:

```Fog::Storage[:rackspace].directories.first.metadata``` will always return empty because it is loaded only if ```Directories.get``` is used.  We either need to only pass metadata to the put if metadata has been modified or if we somehow figure out how to more easily lazy load the metadata (probably a bad idea on the list for performance reasons unless the data is in the list somewhere).