SVN and CVS no longer create diffs relative to current working directory.

CVS and SVN now change to the root directory of the repository for performing
diffs (before changing back).

Add the `_get_repository_root` method to `CVSClient` that determines the root
directory of the current CVS repository. It does this by reading the
CVS/Repository file in the current directory and determining the working
direcotry's depth relative to the CVSRoot; that is the number of directories to
traverse up to find the repository root.

The `base_dir` parameter of all `rbtools.utils.diffs` method is no longer
optional because all SCMTools that utilize it require specifying the root of
the repository.

Testing Done:
Unit tests pass.
The diffs are generated correctly.

Reviewed at https://reviews.reviewboard.org/r/6388/