avoid failed encodings / stop bad charsets early

@bf4 @jeremy 

hotfix:
```Ruby
module NoInvalidEncoding
  def pick_encoding(enc)
    Encoding.find(super(enc)).to_s
  rescue ArgumentError
    "ISO-8859-1"
  end
end

class << Mail::Ruby19
  prepend NoInvalidEncoding
end
```
using binary still means loosing data since we convert to utf-8 and replace
invalid:

test would change from:
expect(Mail::Encodings.value_decode("=?ISO-FOOO?Q?Morten_R=F8verdatt=E9r?=")).to
eq "Morten Røverdattér"

to:
to eq "Morten Rverdattr"

but it does not blow up when working with it, which is nice ...


On Tue, Aug 5, 2014 at 11:41 PM, Jeremy Kemper <notifications@github.com>
wrote:

> In lib/mail/version_specific/ruby_1_9.rb:
>
> > @@ -162,6 +162,12 @@ def Ruby19.pick_encoding(charset)
> >        else
> >          charset
> >        end
> > +
> > +      begin
> > +        Encoding.find(charset)
> > +      rescue ArgumentError
> > +        Encoding::ISO_8859_1
>
> If we can't identify the charset, forcing it to latin1 will likely corrupt
> the data. The only safe encoding is binary / ascii-8bit.
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/mikel/mail/pull/775/files#r15858205>.
>