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
don't catch PrintableError when verbose

Summary: Closes issue #35.

Reviewers: sean

Differential Revision: https://phabricator.buildinspace.com/D84
delete compat.indent()

Summary: That was a python3.2 compatibility function. Now we're only >=3.3.

Test Plan: Ran `test.sh` inside a 3.3 virtualenv.

Reviewers: sean

Differential Revision: https://phabricator.buildinspace.com/D83
remove peru/plugin_shared.py from .coveragerc's omit list

Summary: That file no longer exists. (Yay!)

Reviewers: sean

Differential Revision: https://phabricator.buildinspace.com/D82
automatically sync after a reup

Summary:
In my experience I almost always follow `peru reup` with `peru sync`, so
let's make that the default. Add a `--nosync` flag to restore the old
reup-only behavior. Also add the `--force` flag to reup, to match the
options to sync.

Test Plan:
New integration test. Also clean up the existing reup tests a bit. I
also made sync respect the `--quiet` flag. That particular logic won't
last long (because fancy output is coming), but it keeps our test output
clean.

Reviewers: sean

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