Make GitPoller poll all branches

This change uses ```git ls-remote``` to fetch a list of all branches from a remote - it currently doesn't do anything fancy like try to consider pull requests.

This means that all branches can be monitored for changes without having to reconfigure the buildbot.

I'm going to do some real world testing of this (currently it has only exercised by the unit tests) but am submitting a pull request to get feedback - in particular on whether it is OK to make this the default. I think we should aim to make ChangeSources monitor as much as they can by default (preferring ChangeFilters for filtering) and leave the ability to turn some branches off at poller level as an optimisation for special cases.

If you don't feel it should be default - how should it be activated?