refactored module.

Updated module to use parametrized class, now uses Hiera data bindings.

This removes the dependencies on Hiera and puppet 3, obviously you can still use Hiera.

Lots of random changes, 

I have tested on Ubuntu 12.04, RHEL 6.4, Centos 5.9.