carefully unload lanchctl 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 packags
- add tests for uninstall :launchctl; there were none previously
Merge pull request #2618 from rolandwalker/launchctl_careful_unload

carefully unload launchctl services at uninstall