refactor svn logic into SvnRepo

Summary: This is going to be shared with the reup test.

Reviewers: sean

Differential Revision: https://phabricator.buildinspace.com/D85
svn reup test

Reviewers: sean

Differential Revision: https://phabricator.buildinspace.com/D86
move clean tmp dir test logic to shared

Summary:
We like to confirm that no temp files are left over after our
integration tests. This refactor lets us share do this in the reup tests
too.

Test Plan:
Make sure we can fail both the reup and sync tests by deleting the
cleanup logic.

Reviewers: sean

Differential Revision: https://phabricator.buildinspace.com/D87
make sure plugin env vars are always masked

Summary:
We had code for this before, but it wasn't tested. It turns out we were
setting the literal field names ('url') instead of the formatted field
names ('PERU_MODULE_URL'). We didn't notice this before, because we
were still using `os.environ.get` for our optional fields, which doesn't
fail on a missing variable. Get rid of those calls.

Test Plan:
Now that we're using `os.environ[]` everywhere, we should notice if this
breaks.

Reviewers: sean

Differential Revision: https://phabricator.buildinspace.com/D88