Add an operation to fetch a parsed message.

This avoids the copying of Data to NSData to Data which happens with the current approach. In one test case, a message with an ~18 MB attachment, the current (copying) approach peaked at ~150 MB of memory usage in my app. This new approach peaks at ~65 MB. Another test case, which often caused iOS to terminate my app, now peaks at ~90 MB. In addition to the improved memory usage this approach also means that message parsing is performed asynchronously.
Optimize memory allocation
Fixed crash
Fixed memory leak
Memory usage optimization
Fixed crash, additional memory usage optimization
Additional memory allocation optimization
Merge pull request #933 from michaellenaghan/fetch-parsed-message-operation

Add an operation to fetch a parsed message.