Implement revision parsing for CVS.

This is a pretty trivial implementation. We only support passing zero or two
arguments. With zero, it will return 'BASE' for the base revision and a special
internal string for tip. With two, it just returns the two given tags.

Testing done: Ran unit tests.