mail-parse: Reduce memory overhead of parsing large mails
mail-parse: Further optimize memory usage

This patch uses a 'StringView' to create a string which is a window of
another string. The __toString() method is employed to fetch a lazy copy of
the window which can be usually immediately discarded. This is optimal for
one-time-use string copies like what is used in the mail parsing.
mail-parse: Use a bit less memory copying
mail-parse: Optimize StringView::split

Remove usage of preg_match_all for large strings
Merge pull request #861 from greezybacon/issue/mailparse-large-messages

Make mail parsing more memory efficient

Reviewed-By: Peter Rotich <peter@osticket.com>