(PUP-1369) Package options property / vash

I've split PR #2130 into several parts. This is one of them.

This PR adds a "Vash" container to puppet utilities. Vash is an acronym for 'Validating Hash'. It's a mixin which turns the receiving class into special hash that validate and munge keys and values as they enter the hash.

Vash was originally developed as a separate module [ptomulik-vash](https://github.com/ptomulik/puppet-vash), and you can find modules' documentation there.

The specs for Vash are disabled by default, because it generates too much of test cases (on ruby 1.8 travis fails to load all the test cases, that is these plus puppets' 19.000+ test cases). If youre going to run specs on another VM, you may re-enable vash specs as follows

        PUPPET_TEST_VASH=1 bundle exec rake spec

or

        PUPPET_TEST_ALL=1 bundle exec rake spec