Expose the SMTP envelope From and To addresses and allow them to be overridden.

Envelope From address defaults to return_path || sender || from_addrs.first.
Envelope To address defaults to destinations (to + cc + bcc).

Updates all delivery methods to rely on the SMTP envelope.

References #421 and rails/rails#5985
Parse fields lazily.

This is a substantial performance improvement for people who are parsing
emails but do not need access to all the headers.

In particular I am doing: Mail::Header.new(<str>)['From'].to_s
on this example: https://gist.github.com/5901bbd810c08ed3d0b1
Micro-optimize regexes

This corresponds to about a 10% time-saving when running the specs with
bpot/ragel merged, and a bigger performance improvement for parsing
workloads.
Also unfold and split lazily

This has little effect on the specs, but on my header reading example it
makes about a 10x performance difference, finally bringing it within one
order of magnitude of the "fast hacky solution" at
https://gist.github.com/5901bbd810c08ed3d0b1
Binary search on Fields#<<
Fix code when ActiveSupport is required

Mail::Multibyte is not defined in that case, so we just force everything
to be a string.
Fix fencepost encoding problem with binhex strings and only one token
Don't include separating semicolon in paramter value when sanitizing
Save settings passed to TestMailer new
added feature to find the mail in uid
Replace Treetop parser with a Ragel based parser
AddressListsParser: Don't add an extra address to the address list when it ends with a space.
ReceivedParser: don't error out on quoted strings in a received header
common.rl: use clearer .* in dot_atom_text, instead of (.+)?
Correctly parse addresses that begin with a comment.
Merge branch 'smtp-envelope' of git://github.com/jeremy/mail into jeremy-smtp-envelope
Update changelog for commit ac02a2ecb72ab
Merge branch 'encoding_fencepost' of git://github.com/drasch/mail into drasch-encoding_fencepost
Fix warnings
Updating CHANGELOG