Provide DNS fallback if we can't find a channel server

This is so @imaginator can run his own channel server and still make use of google apps.

Requires an SRV record as follows:

```
_buddycloud-server._tcp.imaginator.com.        IN SRV 5 0 5269 buddycloud.imaginator.com.
```

...and will only fall back once it has exhausted traditional DISCO attempts. Requires further testing before merge/deploy.