Update docstrings, reimplement dry-run.

Updated almost all of the docstrings in the file to reflect on the past
changes and explain things in more detail. Since i was going over the
whole script doing this i decided to fix the formatting a bit, nothing
major just moving some whitespace...

dry-run was reimplemented correctly, and it no longer creates empty
directories.
Small tweak for argument handling.

Instead of putting all arguments instead a dict, just access them
through the args object. Example:
args.directory
Fix recursive dry-run bug, empty tag bug, '/' in tag bug.

The dry-run flag was not carried over by SmartRenamer.scandir() when
called recursively, fixed.

Fixed the the bug when a tag contained an empty list or a list with an
empty string, which resulted in an IndexError and crashed the script.

Some tags (mainly the TRACKNUMBER tag) contained a forward slash in them
which was getting expanded, now tracknumber is split into track and
tracks while all the rest of the forward slashes in other tags are
replaced by a _ before writing the new files.