Throw exceptions instead of logging errors

The client class is able to log errors to the console. This dates back
to before we moved reusable components into the lib directory. We want
to avoid this however and instead throw exceptions that the caller can
catch. Replace the remaining places where we log errors to the console
with exceptions.

This will make the program stop if a directory already exists with the
name of a repository that is about to be cloned. This used to be
reported as an error, yet the program just continued with the next
repository if this happened. It is possible that we want to make this
optional.

Signed-off-by: Marcus Karlsson <mk@acc.umu.se>