(#2773) Use launchctl load -w in launchd provider
There was an issue where a service on OS X would be enabled but also
stopped and the launchd service provider couldn't start it. In this
case, the launchd service provider needed to execute `launchctl load -w
<job_path>` to successfully start the service, but it wasn't programmed
to do so.
To remedy this, the launchd service provider's start method now checks
if the job is disabled OR if the job is currently stopped.
A spec test was added to catch for this unique situation.