expand functionality of the module to support rhel variants.

I've refactored much of the module, and expanded unit test coverage extensively.

Take a look and let me know if you'd like to consider merging this functionality.