Separated out Git, Mercurial, and SVN support.
Move init-* cmake routines into utility folder.
Abstract core of CPM_EnsureRepoIsCurrent.

Primary abstraction is the _cpm_ensure_scm_repo_is_current macro in
CPMCommonSCM.cmake.
Add CPM_OFFLINE mode.

CPM_OFFLINE tells CPM not to access the network at all. If CPM runs
across a module that is not in its local cache, then it will print an
error and configuration will fail.
Fix SVN revision.
Fix offline bug in HG and SVN source.