Refactor FClient into a singleton.

All the static FClient methods relying on the static
MercurialExecutablePath didn't feel quite right, so they're no
longer static.