Allow empty image refs for boot-from-volume

Pretty much most of our code handled this just fine, except for the json schema.

This is mostly a PR adding tests for the case we want to support.

Future task that should be added:
- Empty image ID can only be submitted as a request along with `block_device_mapping`, else Nova returns 400.  Add block device volume ID validation, and validation that ensures that the blank image ref must be accompanied by some block device mappings.

TODO:
- [x] Actually nova seems to also accept null, or no image.  This PR needs to be modified to do so.

Integration tests are in https://github.com/rackerlabs/otter/pull/712
So, to be clear, this test (and the one above) is testing that no matter what the signaling for "no volume" we use in find_server (null, not present, or empty string), we *always* send `image=` as the query arg (so, empty string). Right?