Split getBody() into three functions.

This should make for clearer, less ugly code.
Added a lot of unit tests.
Set release date.
Updated the documentation
Merge branch 'master' into hhvm
sabre-event is now hhvm compatible, so we don't need a specialized
branch.
Adding hhvm back to allowed failures, because travis runs an old
version.