Implement starting/stopping/quiering supervisorctl as a puppet provider

...so we can have tests, add edge cases, notice regressions and have the stuff documented.

This addresses #52 (in some sence, making STARTING a valid process status after restart/update) and #51.

I spent some time trying to stitch the new tests to the old shell/awk implementation, so I can guarantee that the new implementation does the same, but failed...

So there are tests, and we think we fixed some bugs and haven't broken too much.

One (maybe) important change is that the services for individual programs are now having `supervisor::` as a prefix. This was done to avoid name conflicts. See line https://github.com/Jimdo/puppet-module-supervisor/compare/puppet_provider#L2L91

You can see the docs when you run `rspec --format documentation`.

Caveat: the tests do not run real supervisorctl. We just copied the output of supervisorctl into tests.

The initial provider implementation was proudly stolen from https://gist.github.com/monkeymantra/4273546, KUDOS to @monkeymantra

Paired with @skrings all the way.

What do you guys and girls think?