Documentation and testing improvements

Fixed up the README to be accurate and also more test coverage.

```
|-------------------------|-----------|-----------|-----------|-----------|
 File                     |   % Stmts |% Branches |   % Funcs |   % Lines |
|-------------------------|-----------|-----------|-----------|-----------|
    lib/                  |      99.1 |     95.45 |       100 |      99.1 |
       EphemeralSocket.js |      97.1 |     91.18 |       100 |      97.1 |
       backoff.js         |       100 |     83.33 |       100 |       100 |
       dns-resolver.js    |       100 |     96.67 |       100 |       100 |
       messages.js        |       100 |       100 |       100 |       100 |
       packet-queue.js    |       100 |       100 |       100 |       100 |
       statsd-client.js   |       100 |       100 |       100 |       100 |
|-------------------------|-----------|-----------|-----------|-----------|
 All files                |      99.1 |     95.45 |       100 |      99.1 |
|-------------------------|-----------|-----------|-----------|-----------|
```



This also contains some fixes:

 - [cleanup]: Call .send() with one arg in lib/statsd-client.js
 - [feature]: Allow dnsResolve options in lib/statsd-client.js
 - [lint]: Fixup lib/statsd-client.js to use single quotes
 - [bugfix]: Fix off by one in the prefix code in lib/statsd-client.js
 - [bugfix]: Allow socket_timeout to be 0 in lib/Ephemeral-socket.js

cc @sh1mmer @kriskowal
no, the default is in the packet-queue, it deals with given undefined. However defaulting this to null explicitely is less confusing.