fixes to pkg uninstaller to prevent madness

 - do not remove *all* symlinks from referenced dirs, only broken ones
 - restore dir permission after use so we don't leave behind 777 dirs
 - add some better testing around `Cask::Pkg`
 - clean up `FakeSystemCommand` interface in tests

refs #1274
Merge pull request #1279 from phinze/1274-fix-pkg-uninstaller

fixes to pkg uninstaller to prevent madness