Added Mercurial as VCS
Reorder methods
Improve message displayed when no SCS is found
Test source control systems' interfaces

Since I have no idea how to test Git or Mercurial, the best thing to do
for now is to test the interfaces of the classes and objects that
interact with Git and Mercurial.

I took a page out of Sandi Metz's book, Practical Object-Oriented Design
In Ruby, specifically page 222, and went to town with it.

The thing I don't like about Sandi's approach is that it requires the
use of MiniTest's unit syntax. The rest of the test suite is written in
the spec syntax so now we are using the two syntaxes at the same time.
Yuck.

Still, I guess this is better than no tests at all.
Merge branch 'support-more-version-control-systems'