Implement an authentication interface.

It is usually desired to require authentication from clients
requesting certificates or signatures, so that the CA doesn't just
sign arbitrary requests. In practice, the only functionality that
needs to be authenticated is signing.

This functionality is currently intended for use in custom front-ends
using the CFSSL toolkit.
Add static test for auth.go.