Lots of refactoring

- Make ProcessExecutor class
- Type migration: commands as List<String> instead of String...
- executeAndRedirectOutput logs correctly; input stream to log.info, error
  stream to log.error
Don't get logger too early

Stupid Maven quirk.
Fixes #1