Add support for modules in subversion

Mimic the structure and behavior of the git source, but run the relevant
subversion commands instead, and use subversion terminology.

It's a tad bit cargo cult, but I did try to avoid mimicking anything unnecessarily.