Use a generic "vcs" library to support any VCS in the prompt

There is a bit more work that could be done to unify the various workarounds implemented in the plugins for VCS's, but this at least adds support for any VCS by adding a plugin that defines four functions. I added a Mercurial plugin to illustriate the idea. I also upgraded all the themes to use the slightly different style so that they can all work with any VCS under the hood.

Cheers