adding initial implementation of function
a unit test for the new function.

Unfortunately Puppet doesn't install nicely on Windows,
so I can't run the tests at this moment.
using new function: merge_hashes.

Relates to issue #8.

@jsmartin, @andrewjstone, @Iristyle - could you please verify that this branch
solves the problem?
Moving merge_hashes file to the correct location. Issue #8
moving array check to top
upgraded vagrantfile
Merge remote-tracking branch 'origin/feature/hash-merging' into maint/upgrade-vagrant
working merging
ignore dotfiles
properly mapping folders
Merge branch 'feature/hash-merging'

Fixes #14, related to #8.

Cheerio to: @andrewjstone, @Iristyle, @antonlindstrom - I have tried this
on my virtual machine and it overrides.

One case I don't have a really good solution for right now, is overriding
IPs, like this:

``` puppet
node default {
  class { 'riak':
    cfg => {
      riak_core => {
        http => {
          '__string_10.42.0.6' => 8098
        }
      }
    }
  }
}
```

then you will get a config like this, due to the defaults:

``` erlang
[ ...
  {riak_core, [
    {dtrace_support, false},
    {handoff_port, 8099},
    {http, [
      {"10.0.2.15", 8098},
      {"10.42.0.6", 8098}
    ]},
  ...
]
```

i.e. I miss a way to delete defaults over than overwriting the key. Perhaps
adding an option to merge_hashes(kvs1, kvs2, blast_level), where blast_level
removes all other keys than those passed in kvs2 from the level = blast_level
and downwards.