Recursively validate puppet parameter values

Puppet internally stringifies all values, which means that rspec
expectations with integers will fail because 1 != "1". This commit adds
a new parameter class, which can recursively validate a parameter and
ensure that structured data will be properly and recursively validated.

This is the first time that I've written any non-trivial amount of code for RSpec, so I have no idea if this is the most idiomatic or clear approach. I would love feedback on how to make this better or more effective.