Support for multiple template repositories

A working first stab at support for multiple template repositories. Main aim is to allow for internal company repositories so that company specific templates needn't pollute the public repository.
If we made a method that took a single remote and did all this setup, and made the preStart() method responsible for combining the results of setting up the individual ones, it would clarify how we combine the results. If one remote can't be opened but another can, do we open in degraded mode with just one, or do we fail entirely?

Also if we split out the bulk of this as a new method, we'd avoid reindenting it all inside the remotes.foreach(), which is a nice secondary benefit.