make bittorrent-dht extendible.

the end goal of this patchset is this:
https://github.com/xaiki/dht-exp/blob/master/dht.js

basically, be able to implement other extensions, and use your awesome code for moar things.

first patch is needed to make tests pass,
second patch adds ipv6 support, for free.

then we put together and export easy helper functions.
b9f62ee is not actually needed, but I think it's nice.

cheers.
Exporting these is fine, but we should do it on `module.exports` so users can do:

```
var DHT = require('bittorrent-dht')
console.log(DHT.MESSAGE_TYPE)
```

The way it's done here, it's on each instance, which is odd.