Added add,remove and get methods for targetConnectionFactories in

AbstractRoutingConnectionFactory

Added protected methods for
addTargetConnectionFactory,removeTargetConnectionFactory and
getTargetConnectionFactory so clients manipulate the map if needed

I have signed and agree to the terms of the SpringSource Individual
Contributor License Agreement.

Issue: AMQP-405
Thank you @jchappelle for your contribution: very appreciate!
However some minor comments on the matter.

This one should be `final` and `ConcurrentHashMap` without those `synchronized` on mutators.
The `setTargetConnectionFactories` should be modified to `addAll`.
`afterPropertiesSet` should use `notEmpty` to check that our `targetConnectionFactories` have been configured.
However with this new API we can leave it as empty from the start.
Those new `protected` methods should be moved to end of class before the abstract one.

Not sure that override should be an issue, because we really can add `hasTargetConnectionFactory` and let end-user to decide to override or not.

Not sure what to do with `ConnectionListener`s in case of `addTargetConnectionFactory`: or just rely on user preference, or keep the list of listeners here and populate them on `add`. Thoughts ?