More fixes for #62

Ensure all clients handle existing empty or non-empty folder the same way.
If folder exists and is empty, checkout shall succeed now.
git and mercurial behave nicely anyway, only unit tests added.

BZR and tar clients had to be changed to remove empty folder before checkout attempt.
SVN changed to only fail for non-empty folders