Deal with null server metadata

Because Nova accepts null server metadata (although not string or array metadata).

This does 3 things: 

1.  The worker handles it gracefully it the launch config is passed to it with null or invalid metadata, since invalid data may already be in the DB
2.  The cass model returns normalized launch configs by filtering out null or invalid metadata when viewing launch configs
3.  The REST API now accepts but deletes null metadata, and rejects invalid metadata
so basically you want [`:dependencies` with `:exclusions`](https://github.com/technomancy/leiningen/blob/stable/sample.project.clj#L48)? ;-)