carefully unload launchctl services at uninstall

Fixes #2601
- do a soft test to see if the service is loaded before attempting remove
- test/unload as both superuser and user, as the service can be installed
  differently according to the original package
- add tests for `uninstall` `:launchctl`; there were none previously