Update types for authentication

This commit enables authentication at the type level.  I had
some problems with a keychain error when I tested on my laptop,
but I'm waiting to try and reproduce it before I go any further.
fail is not a thing

This commit replaces the call to a fail function and will
instead raise a Puppet::Error