Overhaul of process.py

Changes:
- added license
- added documentation to all functions
- you can now specify the local user and the remote user separately
- func_create_backup() removed, as this is not the job of this module
- ProcessError exception added
- added execute_success() function that raises an exception when the
  command failed instead of always returning (exit_code, stdout, stderr)
  like execute() does