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 warnings
Merge branch 'lazy-fields' of git://github.com/ConradIrwin/mail into ConradIrwin-lazy-fields
Updating CHANGELOG