Use versioned objects for bays

This creates and deletes bay objects in the database.

This new model is great because we can do things like:

https://github.com/openstack/nova/blob/master/nova/cmd/compute.py#L67

And completely override the database with an RPC mechanism instead.
This way objects are created in the ReST endpoint but stored in the
database via the backend and conductor.

I was attempting to write this code, but found it is already on its
way to being merged into oslo-incubator here:

https://review.openstack.org/#/c/127532/

Change-Id: Iff995d28a78f41874cc6ad62baf7420960a530da