Proper Ruby-style encoding support

Work towards proper Ruby-style encoding support for msgpack-jruby. AFAIK that means:
- Encode all strings to be packed using `Encoding.default_external`.
- Assume packed strings are in encoding `Encoding.default_external` when unpacking.
- Decode strings into encoding `Encoding.default_internal` (if it has been set) when unpacking.

These are breaking changes if the encoding was not previously properly setup. Effectively, the earlier version of the code assumed that `Encoding.default_external` was `ascii-8bit` and that `Encoding.default_internal` was not set.

If specified, the `encoding` option for the unpacker will override the default external encoding.