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
```
@jeremy any thoughts? I'm not sure what the impact of any design decisions we make here may be.  

The only potential downside I see right now is not being able to specify a different 'fallback' encoding, and that the `convert_to_encoding` method isn't tested.

In terms of design, for example, isn't the problem this patch fixes really that the case statement has two return types?  

```ruby
  encoding = case charset
     when /^iso-?8859-(\d+)(-i)?$/i
        "ISO-8859-#{$1}"
    when /^8bit$/
        Encoding::ASCII_8BIT
    end
   convert_to_encoding(encoding)
```

Why not ensure the correct return type in each branch?

```ruby
  case charset
     when /^iso-?8859-(\d+)(-i)?$/i
        convert_to_encoding("ISO-8859-#{$1}")
    when /^8bit$/
        Encoding::ASCII_8BIT
    end
```