Refactor all into an exported resources pattern

Not completely done but the pattern is all sketched out. This commit
abandons early musings on assuming a single CA/Master combination system
and using it's moduledir as a variable file store and switches instead
to exported resources. The reasoning here is that while this does
require PuppetDB or some other implementation of exported resources to
be working, it eliminates the hackery of dropping files in the
moduledir.

An outstanding to-do is decide how to handle certificate distribution.
Right now this could all conceivable work as long as the "install"
switch on the rekey::ca class is thrown and implemented before the
"install" switch is thrown on rekey::agent, but that's a lot of trust to
be having and I'd like there to be another way.
Fix a few bugs

Still some outstanding but it's getting closer.