Move param defaults to parent class

Puppet 3.x breaks the pattern of allowing the parent class to defer to the
sub-classes defaults. Instead `undef` gets evaluated to an empty string. As
demonstrated here:

https://gist.github.com/dcarley/5908963

As a workaround the param defaults and documentation have been moved to the
parent class. These variarbles are then redefined locally within the
`::config` class, from the scope of the parent class, where validation then
takes place.

The `config_spec` test now instantites the parent class. However it's kept
separate from `init_spec` because it inspects the resource contents of that
sub-class. It's not quite as clean as unit testing one single class, but we
can at least keep some logical separation about what-is-testing-what and
they could in theory be parallelised.

NB: I'm using the terms "parent" and "sub" in a non-inheritance way.