HORNETQ-1429 Major refactoring on AMQP and client APIS

https://issues.jboss.org/browse/HORNETQ-1429

This is doing a major refactoring on AMQP:
- Introducing ProtonPlug.
 At the moment ProtonPlug is part of master as it will be easier to manage it this way.
 We could eventually make it an independent project
- Support on Flow control
 The server will take flow control credits out of the server and the server
 won't deliver messages when out of the credits
 There will be some space for flow control but we can do it at a later point
- Client refactoring - ready for multi protocol on the client
 I'm keeping things like consumerID blunt, making it ready for a future integration on the client
 I intended to have amqp client as part of this commit but i couldn't finish it at the time
 the refactoring at the client will be kept here case we decide to resume AMQP on the client later.
- There are a few other tweaks done as part of this refactoring that made things easier
  such as properly implement IDGenerator on the JOurnal instead of using a separate interface