Fancy networks

See docs/networks.md for details.

Unit tests pass, but I should write some more unit tests to test the expanded functionality before we merge this.
See, we need to stop monkey-patching the test suite -- my thinking had
been that you could explain this in terms of being shorthand for the
common case. If you really need to make reference to old versions of the
HaaS, it's a sign you're doing something wrong. We've already
established that we need to sink some energy into cleaning up the test
suite starting next week, so I won't block on this, but...

-Ian