[Brightbox] Clean up Cloud IP mapping code

When passing an object that responds to `identity` which is all of our
resources, we can pass the resource's identifier in to the API call to
make it easier to use without maintaining a list of classes.

Server's need to use the interface for the destination so they override
a new `mapping_identity` method which is picked up first.

Anything else (such as a String identifier) is passed directly to the
API request as before.
Merge pull request #2435 from brightbox/clean_mapping_code

[Brightbox] Clean up Cloud IP mapping code
[Brightbox] Code style clean up

First pass at cleaning up the code to a better, more consistent style.
Merge pull request #2437 from brightbox/style_cleanup

[Brightbox] Code style clean up
Merge pull request #2421 from maestrodev/google-tests

[google] Implement disk mocks and enable tests
Merge branch 'master' into maestrodev