Implement feature request from issue #115 (Split messages that are too long)

This implements the feature request in #115 by:

* Automatically splitting messages that are too long up into multiple smaller messages and sending these seperately
* Implementing a new optional configuration option, `MESSAGE_SIZE_LIMIT`, to adjust the maximum length of a single message

Some tests have been re-factored in implementing this.