Improve handling of backslashes in quoted strings. [Fixes #450]

The relevant part of RFC-822 says that '\' '"' and "\r" should be
escaped in quoted strings.

I have added escaping for '\', but not for '\r' as we already use
quoted-printable form for those (and if we allow raw newlines in headers
we have to be much more careful to avoid header-injection).

I've also fixed unquote() to remove backslash-escaping from the string
as RFC-822 suggests.
add license information

This way it can be used with the rubygems.org API
fix bug that was causing an extra line feed to be appended to ALL 7bit encoded attachments
fix parser to not associate extra new lines with attachment bodies
Fix decoding strings that contain '=?', but are not actually encoded.
Merge pull request #507 from jordimassaguerpla/master

add license information to the gemspec
Merge pull request #508 from Aalanar/master

fix for extra trailing new lines on attachments
Update CHANGELOG for #508. Massage spec style to match the others.
Merge pull request #506 from ConradIrwin/450-backslash

Improve handling of backslashes in quoted strings. [Fixes #450]
Update CHANGELOG for #506
Merge pull request #504 from bpot/treat_gb2312_as_gb18030

Treat GB2312 encodings as GB18030
Update CHANGELOG for #504. Clarify charset alias comment.
Split on an exact \r\n\r\n sequence if it exists

This has been broken since 17783f8536fc09b926c7425dbacfc35e0e851ef5
Merge pull request #501 from ConradIrwin/split-on-crlfcrlf

Split on an exact \r\n\r\n sequence if it exists
Update CHANGELOG for #501
Shush warning about == in void context
Replace Treetop parser with a Ragel based parser