Raise exceptions rather than sys.exit().

While we're at it, add a new exception, PathSelectionError, to error.py.
Refactor comment and indentation.
Refactor command interface.

- Add doc strings, refactor variable names, and add PEP8 compliance.
- Use the invoking process' environment when running the command.
- Let the callback function decide how long we are going to read the
  command's output.  Otherwise, we would have to make brittle
  assumptions.
Add torsocks.conf and adapt path to it.
Reduce log message severity.