Adds support for Floating IP

Not quite!
The builders restrict the user to building valid object types. While this is used to ensure very little code is repeated, it still allows us to have distinct rules about what is returned by the service and what can be sent to the service in each call, and all of that ensured by compiler checks as well.
This was part of the neutron refactoring discussions we had around more heavily using GSON and domain classes to do the heavy lifting - the trick was making sure there is no user confusion or reduced usability.
If you have more questions about how we want this pattern to work, and especially if you want to help improve it, let's do it over email, as it usually takes more explaining.