Add multinetwork functionality

Now allows network domain mapping in addition to the regular site mapping.

/cc @johnjamesjacoby @joehoyle
Same reason `get_post` accepts a `WP_Post`: it allows you to pass a result in to the function to ensure the variable matches a type (that is, it makes the function idempotent).