Refactoring to make it easier to use without hiera (ie. just as parameterised classes).  Added an exclude parameter so that particular system classes can be excluded when doing 'include system', which is useful when testing or debugging issues.