Added some advanced tests.

Added test for the following cases:
1. Verify that we do not allow fragments with a size that has not enough
room for a payload.
2. Verify that we error out if we exceed the maximum number of fragments
allowed by the protocol spec, i.e. 65535.
3. Check that a fragmented payload confirms to a specific pattern for
OTRv2 and OTRv3.
Added some Javadoc and comments.