WIP: Initial refactoring work.

[Not ready for merge yet, I want to add 10gen tests too.]

This commit moves all the data into params.pp and reworks the
logic to be less verbose.  I tested this with the rspec-system
tests to make sure it still installs/functions with plain non-10gen
versions.