Decapsulated scm

In an attempt to help in the strategy/no-strategy/bare/archive/whatever discussions from #822 and #826 i have decapsulated the code from the git and hg rake tasks into modules with singleton classes.

This would allow anyone to patch these modules and get their own strategy going when (and if) the needs arises.

Perhaps this needs some kind of callback / plugin mechanism to discourage monkeypatching, but that should not be to hard to facilitate.

As an added bonus, I give you tests :wink: