Support the null sender in the envelope from element class

Added null sender to from address machine
Spec to verify that sending with a sender of <> is allowed
Added a Mail::Constants::NULL_SENDER for convenience
Fixed outdated stub that was sometimes breaking ci
let me set a default charset
Cope with raw sources that were read with the wrong encoding.

Force raw message source to binary encoding before doing CRLF
conversion, masking common issues when users read a message using the
default external encoding (UTF-8), resulting in invalid UTF-8 characters
that break the regexp used for CRLF conversion.

Fixes #736.
Fix 1.8.7 regression in 1ab7d7b5442e0b7a44838725dc623866f4f99fde

Array#sort_by! was added in Ruby 1.9.2.
Merge pull request #761 from zendesk/grosser/default-char

Expose `Mail::Message.default_charset = ...` to set the default charset for new messages. Defaults to `'UTF-8'`
refactor address
Merge pull request #780 from jeremywrowe/refactor/elements-address

Polish up code style for the Address element
fix randomly failing test: we use Time internally, not DateTime
Merge pull request #779 from zendesk/grosser/fix-rand

ResentDateField calls DateTime.now, not Time.now. Fix the test stub.
Revert "support windows-1258"
Merge pull request #784 from mikel/revert-767-grosser/Windows1258

Revert "support windows-1258"
deal with missing closing boundary
simplify encoding splitter and support whitespace inside encoded
universal splitting solution
Merge pull request #776 from zendesk/grosser/double-strip

simplify encoding splitter and support whitespace inside encoded
Merge pull request #757 from zendesk/grosser/missing-boundary

deal with missing closing boundary
Merge pull request #745 from raindrift/master

Support for null envelope sender

Conflicts:
	lib/mail/constants.rb
	spec/mail/fields/resent_date_field_spec.rb
extract converter
add BestEffortCharsetEncoder
fix more random errors