[WIP] Implement support for networking-as-a-service (aka OpenStack Neutron)

This is a WIP PR. Feel free to review but do not merge it just yet. When it is ready for merge all "WIP" mentions will be removed from it.
When I first started looking at this codebase, I actually found some of these class docblocks very helpful. Specifically, there were two things that I found helpful:
* Short, 2-3 sentence descriptions of the concept this class represents (so something more than what I have in this docblock right now), and
* @see links to any documentation web pages.

So, I'm favoring option 1 that you presented, just presenting it in more specific terms. What do you think?