(WIP) The version that accidentally blew up my home directory
(WIP) The version that accidentally blew up my home directory

I accidentally hit 'r' in the debugger instead of 'n' and ran the whole
thing instead of stepping through. Oops.

Some logs from that:

```
$ setup -d
DEBUG:root:Set cwd to PosixPath('/Users/kbd/setup')
DEBUG:root:Command line arguments were: Namespace(action=None, debug=True)
INFO:lib.symlink:Creating symlinks: /Users/kbd/setup/HOME -> /Users/kbd
DEBUG:lib.symlink:source_dir is: PosixPath('/Users/kbd/setup/HOME'), dest_dir is: PosixPath('/Users/kbd')
DEBUG:lib.symlink:Path PosixPath('/Users/kbd/setup/HOME/.config') already exists
DEBUG:lib.symlink:Backing up existing file at /Users/kbd/setup/HOME/.config
DEBUG:lib.symlink:Linking PosixPath('/Users/kbd/setup/HOME/.config') to PosixPath('/Users/kbd/setup/HOME/.config')
INFO:lib.symlink:Creating symlink of PosixPath('/Users/kbd/setup/HOME/.config') to PosixPath('/Users/kbd/setup/HOME/.config')
fatal: unable to access '/Users/kbd/.config/git/config': Too many levels of symbolic links
```

So, it created symlinks pointing to themselves.

This code change was an experiment in making the most straightforward
procedural side-effect-ful code possible and just testing it in the
debugger. That was clearly a failure. Just another step in my quest to
learn to test very side-effectful code. Mocking everything in the world
isn't a good approach either, as the tests were currently broken because
they missed mocking something. Checking in and trying a new approach.

kbd/setup,kbd/setup,kbd/setup,kbd/setup,kbd/setup