allow setting a custom converter

I'm mostly working on inbound mail and I need to do a lot of guessing / non-perfect conversions that are a little to buggy for to integrate here, having this api would allow me to throw away a bunch of monkeypatches.

@bf4 @jeremy @mikel 


Would call this something like a `StrictCharsetEncoder` - its duty is to assign a string encoding based on a charset name.

Then other charset encoders implement the duck type `#encode(string, charset_name)`.

Then you can implement a `BestEffortCharsetEncoder` that is willing to accept lossy/kinda-broken encodings, or a `charlock_holmes` charset sniffer.