Checkpoint commit for OPENDJ-175: Decouple OpenDJ LDAP SDK from Grizzly
Move non-specific Grizzly code to opendj-core and refactor LDAPReader and LDAPWriter.
* Add new package org.forgerock.opendj.io in opendj-core for all IO related features
** org.forgerock.opendj.asn1 classes to be moved in this io package in a future commit
* Refactor LDAPReader class
** use an ASN1Reader as field instead of passing it as arg of each method
** rename methods to readXX
** add hasMessageAvailable method
** move to org.forgerock.opendj.io package in opendj-core
* Refactor LDAPWriter class
** use an ASN1Writer as field instead of passing it as arg of each method
** rename methods to writeXX
** remove implementation of LDAPMessageHandler
** move to org.forgerock.opendj.io package in opendj-core
* Adapt GrizzlyLDAPConnection, GrizzlyLDAPConnectionFactory, GrizzlyLDAPListener,
LDAPClientFilter and LDAPServerFilter classes to changes in LDAPReader and LDAPWriter
** caching of LDAPReader per connection
** caching of LDAPWriter per thread
** new utility methods in GrizzlyUtils class to handle creation and recycling of LDAPReader and
LDAPWriter instances
* Refactor LDAPMessageHandler and AbstractLDAPMessageHandler classes
** remove user provided P parameter
** move to org.forgerock.opendj.ldap.spi package in opendj-core
* Move UnexpectedRequestException, UnexpectedResponseException and UnsupportedMessageexception classes
to org.forgerock.opendj.ldap.spi package in opendj-core
* Convert TimeoutChecker class to a generic timeout facility which is not tied to connections.
** new interface TimeoutEventListener to represent listeners on timeout event
** TimeoutChecker send callbacks to listeners instead of connections
** move to org.forgerock.opendj.ldap package in opendj-core
* Fix issues with TimeoutChecker and usage in GrizzlyLDAPConnection
** prevent negative delays
** wakeup of listeners only if timeout is > 0
* Add test case support for LDAPReader/LDAPWriter in opendj-core and
specific implementation of test case in opendj-grizzly