Catch exceptions when checking user auth

This is an attempt to fix #56.

When using the `client_credentials` grant type, the `Shield::check()` method causes an exception to be thrown, because there is no "user" to check.

This pull requests catches exceptions in the `Shield::check()` method, and returns false instead.

This seems to work for the limited use case I'm using, although I suspect that catching all `Exception`s is not quite right, or that there's a whole part of this I'm not aware of that causes this to be stupid.