(RFR) Pluggable Discovery backends

Addresses #32 

* Makes the discovery subsystem more pluggable, adding `disabled`, `etcd` and `rackspace` backends.
* Rackspace backend searches for UUIDs of an Auto Scaling Group by default, but can look at other metadata on the Server instance.

Example Javascript using this: 
```javascript

function handle(request) {
    return {upstreams: discover('489c20b5-4df2-41fa-ab7e-abd9375e82a5')}
}

```

With the following Command line args: `OS_USERNAME=your_username OS_PASSWORD=you_apikey vulcan -discovery "rackspace:///?region=ord&protocol=http"`