Features/feature merge behavior

Another go at a cleaner merge behavior feature branch, with puppet tests.

Puppet feature could do with reengineering - I'm currently working on rspec and cucumber for our puppet deployment, so I'll leave a promise to come back with some better puppet tests.

(Apologies for the cluttered patchset, I'm working out github branch and pull request behaviour, hence a pull containing a rebase of previously merged from upstream/master. Should still be a fast forward merge)