Adding ActiveMQ protocol into core

implementing channel updates

protocol changes

rename package

Replace CountDownLatch by ReusableLatch

change 1

moving protocol into spi.protocol

Renaming the client ProtocolManager to ClientProtocolManager (and its factory) to avoid confusion with the server's ProtocolManager

protocol refactoring

moving protocol methods