svn: only export single path in diff(path!=None)

Subversion can export a particular path at a cost dependent on the size of the
file. This speeds up diff() drastically for small text files.
add test case for diffs between deleted single paths

Exposes regression introduced in last commit.
svn: implement diff() without writes to the file system

This works great, but SVN exits nonzero if either of the paths did not exist at
that revision. For Git, any path is OK, even if it never existed in source
control. The same is true for Mercurial.
fix problem with test case
svn: better support case where file does not exist at given rev

Subversion does not natively support diffs for paths which are nonexistent at
either of the provided revisions. This simulates the behavior of Git in that
case.
rework test case to include mismatched file types
svn: start on test suite for head:rev feature
unify prefix joining under anyvcs.svn._join()
svn: ensure diff() and pdiff() outputs are str

diff-like operations only make sense to perform on text files, and difflib
doesn't work on bytes(), so it seems to make sense to guarantee that both
outputs are of type str().

Similar things should be done in unit tests, GitRepo, and HgRepo.
add checks in unit tests for string types in diff() and pdiff()
hg: ensure output of pdiff() and diff() is str
git: ensure output of pdiff() and diff() is str
fix few remaining usages of Popen.communicate()
make SvnRepo.diff() recursive by default

This is the default behavior for Git, Mercurial, and Subversion (for legal
rev/paths).
better binary file support for SvnRepo.diff()
PEP8 cleanup
Merge branch 'develop' into feature/svn-fast-path-diff

Conflicts:
	anyvcs/svn.py
Merge pull request #55 from OEP/feature/svn-fast-path-diff

svn: only export single path in diff(path!=None)