Add TM Locator impl to JMSBridge tests
Allow tests to set TM in TMLocatorImpl

Some tests require a proper TM to be returned by the TMLocator
implementation whilst others require a DummyTM to be returned.  This
patch makes allows TM returned by the locator class to be changed by the
test.
Only Set TM on Bridge in QoS modes that require it

The bridge currently tries to assign a TM even when the quality of
service level is set to Duplicates OK.  This QoS does not use or require
a TM.  This patch stops the bridge from attempting to assign a TM for
this QoS and also checks that a TM is set of the other QoS.  If TM is
not set for a QoS that requires one, a error is logged and RunTime
exception thrown.
Set TM as loaded only after a TM is located.

Previously the ServiceUtils component responsible for loading the
transaction manager would attempt to load a TM only once.  If it was not
found it would not try again.  This patch updates the ServiceUtils to
iterate over any TransactionManagerLocator implementations on the class
path and check each one util a TM is located.
Merging #46 on TM Fixes