Subnet types

This includes two things:
1) replace the initial subnet types list with a fuller list, and related refactoring
2) the first iteration of the NetworkQuery API/helper class for grabbing interfaces, etc for hosts in the context of a particular subnet type.

1) is largely done here; 2) will need more work, but that could be done either as part of this PR, or as a follow-on PR after merging this one, since it's not referenced anywhere yet.
Ahh ok, I'll do that then. My only example was in the assignment code where we do distinguish it -- if we don't need this, then I'll fix it. Same with the primary interface bit -- that needs to be included too, as you mention.

As for whether to return the interface object itself vs. a staypuft vs. a hash, I'm open to suggestion here. This was my first attempt at doing *something* -- stepping back for a moment, this is really a lower-level method -- we'll need more specialized ones which return "IP address for host on $subnet_type" or "IP addresses for controllers...", or "interface name for host on..." (i.e. for some of the neutron config) -- so we don't necessarily need the Foreman Interface object itself, but we do need something that can then return the associated IP address, or interface name, or mac address, or the network address (i.e. 192.168.0.0/24, etc.)