Better use of redirections and here strings.
Added `remove_oldest` function.
Modified the way we handle lack of space on destination.

Until this commit, the WABACMachine performed a dry-run to try to determine how much space a new snapshot would take.
This strategy wasn't reliable. As a consequence, the dry-run has been removed, as well as the (now useless) `needed_space` and `free_space` functions.

From now on, we try to detect a specific error when rsync exits. If we detect this error, we remove the oldest snapshot and resume the inProgress snapshot.
We do this until rsync completes successfully. If we can't remove the oldest snapshot (e.g. because it's the last one available), the backup process will fail.