HORNETQ-1418 - ha policy changes and refactoring

https://issues.jboss.org/browse/HORNETQ-1418

This patch abstracts the different HA policy configurations into their own classes. This avoids having unrelated configuration elements in the same configuration class or xml chunk.

Because of this the HornetQServerImpl class has been simplified by extracting the different Activations into their own class and moving into the Activation any code that is specific to the actual Activation. This should make it easier to extend or add any new Activation code.
Merge pull request #1872 from andytaylor/hapolicy_changes

ha policy changes and refactoring
BZ-1146506 & HORNETQ-1287  Message does not expire when it is diverted to another queue

https://issues.jboss.org/browse/HORNETQ-1287
https://bugzilla.redhat.com/show_bug.cgi?id=1146506

Diverts were not setting the expiry message during any type of divert.
It seems this was an initial design decision but I don't see a reason why
expiry should be removed between routing and diverting.
Besides this we also fixed the case where the original queue wasn't set
during divert and expiry.