First pass at swappable authentication

Currently, it `require`s the extension named `authentication`.  This
uses the `package.json` file to determine the entry point of the
module.
Simplified authentication interface
Stubbed out a currentUser function
Merge branch 'basic_authentication'