codec: Support RawExt and RpcCodecBuffered.

RawExt works like encoding/json.RawMessage.
It represents raw unprocessed extension data.
Users can have a RawExt in their struct, and the codec
will just put the extension data (Tag byte and []byte data)
as-is for potential further processing later.

RawExt is also returned if decoding into a nil interface{} and
no extension function has been registered.

RpcCodecBuffered interface allows access to the Buffered Reader
and Writer used internally by the rpc codec. This accomodates
use-cases where the connection should be used by rpc and non-rpc functions,
e.g. streaming a file after sending an rpc response.

Both GoRpc and MsgpackSpecRpc return codecs that implement RpcCodecBuffered.

In addition, some minor re-org and fixes were done:
- decoding numbers into a nil interface{} for Binc always uses 64-bit values
  (int64, uint64)

Updates issue #16 .