Add svn support, plus some misc fixes

 - Changed `--version` to use the optparse builtin support for it;
 - Changed `--numlines` to `--unified` because most diff tools use the latter for specifing number of context lines;
 - Added `-u` and `-L` to support svn calls to external diff tools.

The `-u` is a dummy option; it's there so that option parsing doesn't choke whenever it is used. This is compatible with svn and git.
could we print a warning if there's only one option label or more than two?