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