Make the message attribute of GIT repository a LazyProperty

- we shouldn't get this for every changeset
- it makes it consistent with HG backend
Don't calculate git config on each repo object
Use once compiled sha pattern to do regex checks
few small optimizations that.

- return if we have the head
- skip checking if revision is binary string
- calculate tags for lookup, only if we reached that step
Merge pull request #112 from marcinkuzminski/master

Few small optimizations on _get_revision function