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.
Please describe the full semantics of this; what's legal? what do things mean?

You put a summary of the sentinel values in `docs/apidesc.md`, but there's more information that isn't stated., and I've already got some work on a branch to generate that from the docstrings anyway.