Less object allocation and less garbage collection

This should bring down the amount of garbage generated by HornetQ quite a lot. Here are before and after measurements (don't look at the counts, only the percentages matter here):

![before](http://i.imgur.com/LT8dtyK.png)

![after](http://i.imgur.com/HB32zHx.png)

My guess is that this can't go back upstream since it uses Guava, but I'll send them a link to the diff anyway, maybe they'll fix it themselves. I'm guessing we trigger this behavior more than other people because we use spring with a lot of queues, and that creates new consumers all the time.

@tom-williams @BogdanSorlea @geoffnin @lbschenkel @jypma