Refactor to solve multiple issues; also a test suite

This is a refactor PR that aims to:

  - Provide full support for all supervisor program types
  - Clean up duplicate resources and execution
  - Add unit tests for the default recipe
  - Add integration tests for the default recipe, and the new resource/providers
  - Lint existing code (foodcritic & rubocop)
  - Be fully compatible with the existing API, while promoting new resources
  - As a result of these changes, this PR also fixes; #37, #42, #43, #44 and #47

### Explaination

The original motivation for this was to fully support fcgi_programs, groups and eventlisteners in a way that would conform to supervisor naming, terminology and defaults without huge duplication of supervisor defaults, attribute names and validation rules.

This has been achieved with what for the sake of simplicity I'll refer to as a MWRP (Middle-Weight Resource/Provider), take a look at it to see why, in the form of the `_section.rb` library. So called because at it's most basic, it manages a section of the supervisor config. Almost all of the more complex logic lives there, pathing the way for the LWRPs that inherit from it to be far simpler.

Due to the magnitude of this refactor, it became apparent that it would be necessary to prove that nothing had been broken and functionality had been maintained; to that end I've included style, unit and integration tests in the vein of official Opscode/Chef cookbooks.

Public facing changes have been documented in the readme, and I'm happy to answer any questions you may have. I'm open to any suggestions for making this mergable.

Thanks for your consideration!