Refactor socket binding/unbinding.

Allow restarting client/server multiple times.
Use `node-ip` for address detection.

Addresses issues #10 and #11.
Separate client and server.

Re: #12.
Updated README.md

Fixes #13.
Removed `process.on('exit')` listeners.

User should handle this.
Updated README