Services v2 (ip-per-service)

DO NOT COMMIT.  Needs test updates and a new e2e test.  Some FIXMEs still.  95% complete.

Add support for IP-per-service behavior.  This creates virtual IP addresses for each service, and uses iptables to route traffic "magically".

The first few commits are relatively independent, and could be extracted to different PRs, if you feel like making me suffer.

See #1107 for background.
Ditto above. Here you probably want to use a temporary variable for the ip_to_hostname (to avoid nested quotes.) Ah, here vagrant ssh seems to take a single argument as the command, so using "$*" is more appropriate (to stay consistent with the behavior of the other definition of ssh-to-node.)

```shell
ssh-to-node() {
  local node=$1
  shift
  local node_ip
  node_ip=$(ip_to_hostname "${node}")
  vagrant ssh "${node_ip}" -c "$*"
}

restart-kube-proxy() {
  ssh-to-node "$1" sudo systemctl restart kube-proxy
}
```