Brain#recall refactor and issue#35 fix
Brain#recall refactor and issue#35 fix

I recently discovered that brain#recall behaved incorrectly when trying
to overwrite directories that were already present on the host system.
I (incorrectly) believed that passing force: true to FileUtils#ln_s
would force any existing directory to be overwritten by a new symbolic
link, whilst in reality the symbolic link is placed *inside* the
existing directory. This commit refactors Brain#recall so that, in the
event of a destination file/directory already existing and the
overwrite option being set to true, the method explicitly deletes the
existing file or directory before recalling the cue, rather than
attempting to overwrite.

This commit also adds some code comments for readability and
comprehension.

dvjones89/sheldon