Fix merge multiple connections. Test suite *not* passing (sftp refactoring pending but unrelated to merge).
* bzrlib/builtins.py: (cmd_merge.run): Fix the multiple connections bug by reusing the tramsport used to check for a bundle and keep all other used transports in possible_transports. (_merge_helper): Add a possible_transports parameter for reuse.
* bzrlib/transport/__init__.py: (Transport._reuse_for): By default, Transports are not reusable. (ConnectedTransport._reuse_for): ConnectedTransports are reusable under certain conditions. (_urlRE): Fix misleading group name. (_try_transport_factories): Moved after get_transport (another use case for moved lines). The do_catching_redirections was incorrectly inserted between get_transport and _try_transport_factories.
* bzrlib/tests/test_transport.py: (TestReusedTransports.test_reuse_same_transport) (TestReusedTransports.test_don_t_reuse_different_transport): Add more tests.
* bzrlib/merge.py: (_get_tree, Merger.set_other): Add a possible_transports parameter for reuse.
* bzrlib/bzrdir.py: (BzrDir.open_containing): Add a possible_transports parameter for reuse.
* bzrlib/branch.py: (Branch.open_containing): Add a possible_transports parameter for reuse.