fix charset getting reset to nil unintentionally
Collapse adjacent =??B? words losslessly

Before this change the code assumed you could concatenate two Base64
strings, which is not true.

This fix relies on non-standard behaviour of our parser: RFC 2047 says
that encoded-words MUST be separated by at least a space, but we happily
parse two unseparated encoded-words.

Fixes: #560
Fixes: #561
Broken-since: 2.5.4 (cb8162165b61c5a65da37341f13f4e40c8d5bcb1)
Add a spec for non-space-separated encoded-words

RFC-2047 says that encoded-words MUST be space separated, but Gmail and
iOS mail also parse directly adjacent words; so we should too.
Merge pull request #552 from yinquanteo/master

fix header's charset getting reset to nil unintentionally
Merge branch 'master' of git://github.com/mikel/mail