(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 use 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