Different attempt at resolving the dependency problems.  This time

we add autorequires to the types on the Service and Package in
question (turns out autorequires against classes is broken, of
course).

This is a counter to #75.  It means we have to track the state of the module in the providers, which kind of bothers me. @nanliu - What are your thoughts on the whole Class['install'] -> Config -> Service pattern we have going on in the first place?  I feel like it's the lazy answer to dependencies, always selecting ordering based by class. It makes writing Puppet modules a lot easier but as soon from the problems I ran into with delete_guest_user it has negatives.  This call clearly belongs in config but because config -> service it instantly fails.

I'm tempted to rip that out and go back to explicitly adding requires where needed.  It makes the manifest flow harder to follow but is less constraining.