Strip encoding code

This patch, which is an extension of the other one for now, but can be rebased later on, rips out all of the encoding stuff from the implementation. Thus, a binary is supposed to be pre-encoded by someone earlier in the call chain.

Currently, the implementation is more or less faithful to the original one. A change I would really like to see is to regard a list as an `iolist()` type and call iolist_to_binary on it. That way, any string-like object would be represented as an iolist. Even more complex would be to have the quote functions operate on iolists. So we could eliminate iolist_to_binary completely and just shove the iolist onwards to the socket. This would be even faster and more idiomatic to Erlang.

The patch has not seen much testing yet, but the plan is to test the branch shortly on some local in-house code here.