Git Poll 2

This branch supersedes #1008.

I've fixed up `describe`, and added a test case for the branches=Callable case, and done some tidying to keep PEP8 happy.

> What if somebody had poller state with non-bare branch names?
> 
> If we are going to try to be smart, we should be smart, and canonicallize names. (It appears that ls-remote will do that for us). That will deal with anything, going forward.
> 
> I'm not sure how best to deal with existing state. One option would be to version lastRev. i.e. Have lastRev and lastRev-v2, with the latter having only canonicalized names. And to covert the former to the latter, run ls-remote (which will convert branches that still exist).

@tomprince - I'm afraid my knowledge of buildbot is rather too novice to be able know what to do about this. @djmitchie, @tomprince - can you guys tell me how to decide what to do?