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 


added BestEffortCharsetEncoder for now very simplistic, I can extract our current character detection madness into a gem and share ... ~100LOC with chardet + charloc holmes detection ... should not be a dependency of mail ...