par2 is required to run duplicity ./setup.py test (lp:#1399843)

[Original report](https://bugs.launchpad.net/bugs/1399843) created by **Gábor Lipták (gliptak)**
```
duplicity 0.8.x  (HEAD)
python 2.7.6
Ubuntu 14.04

Running .setup.py test produces following errors (it might be documented
somewhere as a requirement):

test_pylint (testing.test_code.CodeTest) ... skipped 'Must set environment
var RUN_CODE_TESTS=1'

======================================================================
ERROR: test_delete (testing.unit.test_backend_instance.Par2BackendTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/tmp/duplicity/testing/unit/test_backend_instance.py", line 72, in
test_delete
    self.backend._put(self.local, 'a')
  File "/tmp/duplicity/duplicity/backends/par2backend.py", line 90, in put
    self.transfer(self.wrapped_backend._put, local, remote)
  File "/tmp/duplicity/duplicity/backends/par2backend.py", line 76, in
transfer
    out, returncode = pexpect.run(par2create, -1, True)
  File "/usr/lib/python2.7/dist-packages/pexpect/__init__.py", line 213, in
run
    env=env, _spawn=spawn)
  File "/usr/lib/python2.7/dist-packages/pexpect/__init__.py", line 230, in
_run
    **kwargs)
  File "/usr/lib/python2.7/dist-packages/pexpect/__init__.py", line 485, in
__init__
    self._spawn(command, args)
  File "/usr/lib/python2.7/dist-packages/pexpect/__init__.py", line 590, in
_spawn
    'executable: %s.' % self.command)
ExceptionPexpect: The command was not found or was not executable: par2.

======================================================================
ERROR: test_delete_clean
(testing.unit.test_backend_instance.Par2BackendTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/tmp/duplicity/testing/unit/test_backend_instance.py", line 84, in
test_delete_clean
    self.backend._put(self.local, 'a')
  File "/tmp/duplicity/duplicity/backends/par2backend.py", line 90, in put
    self.transfer(self.wrapped_backend._put, local, remote)
  File "/tmp/duplicity/duplicity/backends/par2backend.py", line 76, in
transfer
    out, returncode = pexpect.run(par2create, -1, True)
  File "/usr/lib/python2.7/dist-packages/pexpect/__init__.py", line 213, in
run
    env=env, _spawn=spawn)
  File "/usr/lib/python2.7/dist-packages/pexpect/__init__.py", line 230, in
_run
    **kwargs)
  File "/usr/lib/python2.7/dist-packages/pexpect/__init__.py", line 485, in
__init__
    self._spawn(command, args)
  File "/usr/lib/python2.7/dist-packages/pexpect/__init__.py", line 590, in
_spawn
    'executable: %s.' % self.command)
ExceptionPexpect: The command was not found or was not executable: par2.

======================================================================
ERROR: test_get (testing.unit.test_backend_instance.Par2BackendTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/tmp/duplicity/testing/unit/test_backend_instance.py", line 51, in
test_get
    self.backend._put(self.local, 'a')
  File "/tmp/duplicity/duplicity/backends/par2backend.py", line 90, in put
    self.transfer(self.wrapped_backend._put, local, remote)
  File "/tmp/duplicity/duplicity/backends/par2backend.py", line 76, in
transfer
    out, returncode = pexpect.run(par2create, -1, True)
  File "/usr/lib/python2.7/dist-packages/pexpect/__init__.py", line 213, in
run
    env=env, _spawn=spawn)
  File "/usr/lib/python2.7/dist-packages/pexpect/__init__.py", line 230, in
_run
    **kwargs)
  File "/usr/lib/python2.7/dist-packages/pexpect/__init__.py", line 485, in
__init__
    self._spawn(command, args)
  File "/usr/lib/python2.7/dist-packages/pexpect/__init__.py", line 590, in
_spawn
    'executable: %s.' % self.command)
ExceptionPexpect: The command was not found or was not executable: par2.

======================================================================
ERROR: test_list (testing.unit.test_backend_instance.Par2BackendTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/tmp/duplicity/testing/unit/test_backend_instance.py", line 59, in
test_list
    self.backend._put(self.local, 'a')
  File "/tmp/duplicity/duplicity/backends/par2backend.py", line 90, in put
    self.transfer(self.wrapped_backend._put, local, remote)
  File "/tmp/duplicity/duplicity/backends/par2backend.py", line 76, in
transfer
    out, returncode = pexpect.run(par2create, -1, True)
  File "/usr/lib/python2.7/dist-packages/pexpect/__init__.py", line 213, in
run
    env=env, _spawn=spawn)
  File "/usr/lib/python2.7/dist-packages/pexpect/__init__.py", line 230, in
_run
    **kwargs)
  File "/usr/lib/python2.7/dist-packages/pexpect/__init__.py", line 485, in
__init__
    self._spawn(command, args)
  File "/usr/lib/python2.7/dist-packages/pexpect/__init__.py", line 590, in
_spawn
    'executable: %s.' % self.command)
ExceptionPexpect: The command was not found or was not executable: par2.

======================================================================
ERROR: test_move (testing.unit.test_backend_instance.Par2BackendTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/tmp/duplicity/testing/unit/test_backend_instance.py", line 128, in
test_move
    self.backend._move(self.local, 'a')
  File "/tmp/duplicity/duplicity/backends/par2backend.py", line 93, in move
    self.transfer(self.wrapped_backend._move, local, remote)
  File "/tmp/duplicity/duplicity/backends/par2backend.py", line 76, in
transfer
    out, returncode = pexpect.run(par2create, -1, True)
  File "/usr/lib/python2.7/dist-packages/pexpect/__init__.py", line 213, in
run
    env=env, _spawn=spawn)
  File "/usr/lib/python2.7/dist-packages/pexpect/__init__.py", line 230, in
_run
    **kwargs)
  File "/usr/lib/python2.7/dist-packages/pexpect/__init__.py", line 485, in
__init__
    self._spawn(command, args)
  File "/usr/lib/python2.7/dist-packages/pexpect/__init__.py", line 590, in
_spawn
    'executable: %s.' % self.command)
ExceptionPexpect: The command was not found or was not executable: par2.

======================================================================
ERROR: test_query_exists
(testing.unit.test_backend_instance.Par2BackendTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/tmp/duplicity/testing/unit/test_backend_instance.py", line 141, in
test_query_exists
    self.backend._put(self.local, 'a')
  File "/tmp/duplicity/duplicity/backends/par2backend.py", line 90, in put
    self.transfer(self.wrapped_backend._put, local, remote)
  File "/tmp/duplicity/duplicity/backends/par2backend.py", line 76, in
transfer
    out, returncode = pexpect.run(par2create, -1, True)
  File "/usr/lib/python2.7/dist-packages/pexpect/__init__.py", line 213, in
run
    env=env, _spawn=spawn)
  File "/usr/lib/python2.7/dist-packages/pexpect/__init__.py", line 230, in
_run
    **kwargs)
  File "/usr/lib/python2.7/dist-packages/pexpect/__init__.py", line 485, in
__init__
    self._spawn(command, args)
  File "/usr/lib/python2.7/dist-packages/pexpect/__init__.py", line 590, in
_spawn
    'executable: %s.' % self.command)
ExceptionPexpect: The command was not found or was not executable: par2.

======================================================================
FAIL: test_diff2 (testing.unit.test_diffdir.DDTest)
Another diff test - this one involves multivol support
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/tmp/duplicity/testing/unit/test_diffdir.py", line 150, in
test_diff2
    assert not os.system("rdiff patch testfiles/dir2/largefile "
AssertionError

----------------------------------------------------------------------
Ran 305 tests in 421.621s

FAILED (failures=1, errors=6, skipped=3)
```

Story points: 10.0