basically rewrite internals.

add commandline options
better logging
added progress and dry-run: both are really needed.
subprocessing revamp
drop external deps: I don't really need python-sh, and progress
reporting seems to work better with subprocess, so switch to it.
embed tqdm, license is the same.
reduce output pollution
cleanup ui
ensure dependencies before to start an operation
backup root home