Make sure all unhandled exceptions are propagated properly.
Create proper exit code cascade.

All the subcommands now return 0 on success, 1 on error (if no exception was thrown).
Fold manager_functions.py into main script.

This was unnecessary sugar/compartmentalisation.
Log warning and above to stderr, rest to stdout. Prettify log output.
Implement list command.
Update Readme