draft install/uninstall impl
cleaning up install/uninstall implementation
add (untested) pkgutil based uninstall; teamviewer works

- still need script-based uninstall thanks to *crazy* stuff happening in
  virtualbox uninstall script (seriously, look at the python stuff)
- pkgutil uninstall takes a regexp to match multiple packages and remove
  all files installed by them
- add ability to remove launchctl services
- also include explicit files to remove since e.g. teamviewer does weird
  stuff causing files to get left around