(QENG-989,990) Clean up open source install rough edges

This ensures that puppet and friends are available after gem installs on
Solaris and Debian. It also makes sure that the config directory and
hiera.yaml file are aways present. The former change fixes QENG-989 while
the latter fixes QENG-990).
We can, and I've updated it to, though I went back and forth on this quite a bit. There was some discussion on the puppet foss lists a while back about limiting the usage of `unless`. I initially decided that it sounded better in my head with the `if not`. I think my rationale really came down to the declarative vs imperative sound of the method being called. eg:
```ruby
  if not host.execute_this_command_correctly
```
vs
```ruby
  unless host.is_this_correct?
```