Adds new RegistrationStateChangeEvent and avoid reconnecting providers when server connection fails due to an error of received input. Buggy server or wrong input saved on server can keep provider reconnecting forever.
Avoid calling login from global status service due to a registration state changed of provider, this job is for reconnect plugin.
Initial support for updated otr4j with support for outgoing message fragmentation.

Modifications include the following:
- Updated otr4j which includes support for fragmentation of outgoing
  messages. The modifications to otr4j to enable outgoing message
  fragmentation includes breaking the API such that we are able to
  return more than 1 message after it has been transformed.
  (Corresponding modifications have been made to
  AbstractOperationSetBasicInstantMessaging to facilitate the new API.)
- Fixed IRC implementation for OperationSetInstantMessageTransform.
- Modified AbstractOperationSetBasicInstantMessaging to handle multiple
  Events returning from a call to messageTransform.
- Modified OperationSetBasicInstantMessaging implementations to
  correspond to changes in AbstractOSBIM.
- OTR plugin has been modified to implement the newly added
  getFragmenterInstructions method which is used to query instructions
  on desired fragmentation behaviour.
- As a temporary solution, a hard dependency has been added to IRC
  library such that I'm able to test fragmentation behaviour in a real
  use case until an OperationSet is defined that can be used to query
  for Instant Messaging transport parameters necessary to determine
  appropriate fragmentation instructions.
Defined and implemented Operation Set Basic Instant Messaging Transport
for querying protocol implementation for operational boundaries.

* Defined the Operation Set for querying transport operation.
* Also implemented the Operation Set in IRC protocol support.
* OTR plugin has been modified to take advantage of the newly defined
Operation Set and queries the protocol for input on building
fragmentation instructions. In case the protocol does not implement the
Operation Set, then it will fall back to OTR defaults.
Renamed methods of BasicInstantMessagingTransport.
Clarification of concept of 'Transport' in
OperationSetBasicInstantMessagingTransport.
In case event is null, continue with next event instead of finishing.
Check if message originates from encrypted message event before
testing for command.
Changed BasicInstantMessagingTransport to extend OperationSet directly.

Based on my own doubts and Ingo's feedback I've decided to not base
OperationSetBasicInstantMessagingTransport on
OperationSetBasicInstantMessaging. Even though it doesn't make much
sense to implement BasicInstantMessagingTransport and not
BasicInstantMessaging. In theory we could at least query the
characteristics if not actually use the protocol, so I've decided to
extend OperationSet directly.