Puppet 3 + hiera + windows support

- Rewrite/clean up code for Puppet 3 compliance
- Add full Hiera support (base module and plugins)
- Add Windows support

NOTE:
- Due to restructuring to support existing and future multi-OS & plugins, this is not backwards compatible with the old module. The documentation has been updated to reflect the new usage.
- Requires Puppet version 3.4+ which provides the 'contain' keyword for working with proper cross-class dependencies (no 'anchor' pattern hacks) and has much improved (read: now usable) Windows support