Implement starting/stopping/getting status of supervisor programs 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~~ ~~Huch, this is wrong way around. The `service { "supervisor::${name}":` is what this line should look like. The pull request breaks it, not fixes.~~ Disregard this. Fixed.

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?