Merging changes from original project
Merge remote-tracking branch 'upstream/master'
Updated to latest libetpan b9de519082830cfc92bceb587e8060a28735b121
Implement X-GM-RAW interfaces
RAW -> Raw
Improve documentation
Remove unused variable
Remove mentions of register

C++ 11 Standard (Annex D.2):

The use of the register keyword as a storage-class-specifier (7.1.1) is
deprecated.
Remove unused or undefined functions
Add required virtual destructors.
Merge pull request #520 from CodaFi/X-GM-RAW

Implement X-GM-RAW
Return proper NULL delimiter

NULL will get cast to (char)0 properly, but casting ‘\0’ (technically
an int) better expresses the intent that we mean to return the
terminating char.
Fix PR comments
Build fixes for Linux
Merge pull request #535 from CodaFi/W-Pedantic-Warnings

Cleans up warnings
Improved charset conversion. Added TODOs.
Fixed #531, #530, #529, #528, #527: fixed thread safety in case callback is dispatched in a thread different than main thread.
Added comment
Fixed charset detection, improved collection of valid charset (fixed #532)
Fixed build on Linux
Fixed potential crash