feature(network-online.target): ensure IP routable before enabling

This implements `network-online.target` by waiting until there is a route to `8.8.8.8` (arbitrarily-chosen public IP). It changes `coreos-setup-environment.service` to run after `network-online.target`.

Where previously my environment's public IP would be `0.0.0.0`:

```
core@localhost ~ $ cat /etc/environment
COREOS_PUBLIC_IPV4=10.0.2.15
COREOS_PRIVATE_IPV4=127.0.0.1
```

![img](https://d2oawfjgoy88bd.cloudfront.net/533da756c38aa51217f640dd/533da777c38aa51219a9875c/537e8ec5c38aa54755af93c8.png?Expires=1400889418&Signature=LddOI6Nu5a4GBRP1n-DBO7KWQXrCXgnESlUhbAf1qZAR8CbO-XeAsHI9uVFCwOWujt-t5~WYhbVEvsl0-9rfYiUQfBFfXwoeOyQMglZZ4KTKxTt6SF8BhKbcnE8XxokRUehe8LEyU31fVZJlK2urROr6e4c9S~K6oyPewWFr8A9hu6qXwS9CG6ytorR6PWnuFPe2gqfc~wceD~tnt9mFieT9YS77HwpGH31G~c-bXKeCt1p5aTG7MqkkyrHMOCQngWbKv9YbUJf6EJsoKI~uS-ONcw7QYugGVnvtrZlfy~ofQk9gjzif2uVv4FwvfKUAKjGadLIPrSoY1CTN7GHsCQ__&Key-Pair-Id=APKAJHEJJBIZWFB73RSA)

Other services that should also be waiting on this that spring to mind:

* Whatever fetches remote cloudinit files.