Replace unnecessary async read with sync one

this is big refactoring, but hopefully it'll make code much much cleaner.

Since 'yyuua(yv) + body' message size is known after reading first 16 bytes I can read the whole message first and only then parse message buffer. Few reasons behind this:
  - get rid of "binary" module dependency. It was good to start, but after some point become a lot of pain to support ( speed, leaking memory #21 , crazy stack traces and other problems )
  - alignment based on global offset is really difficult to implement in async code

some other changes as part of this PR:
  - proper abstract sockets client using https://github.com/saghul/node-abstractsocket instead of wrapping socat child #24 
  - streams2
  - unixexec transport support
  - server handshake (WIP)
  - (hopefully) better docs
  - es6 proxy-based interface is dropped. Probably going to make api easy to use with `co` ( thunks or promise based #9 )
  - port forwarder/proxy tool to monitor messages