Refactored pam::service definition

The pam::service definition used to only have a free text 'content' parameter to define a pam service.
Now it takes an array of hashes for every type.

This breaks backwards compatibility, but I think this is a more sane way to define a pam service.