Add new OOP interface to work with JWKs

Hello xaicron.

I'm implementing currently OpenID google login and decided to rework your module a bit.
I've added additional functionality to work with JWK sets.
Example of such keys you can find here: https://www.googleapis.com/oauth2/v2/certs (your module worked with certs version 1: https://www.googleapis.com/oauth2/v1/certs).
Also, I've changed logic of loading Crypt modules to Class::Load (internally it uses Module::Runtime like you used). I made this change, because checking $::Module:: stash is not correct and does not work for some Moose programs.
e.g.: 
use MongoDB will add a lot of crap to %::
_<constructor MongoDB::MongoClient::new (defined at /usr/lib64/perl5/vendor_perl/5.18.2/x86_64-linux-thread-multi/MongoDB/MongoClient.pm line 914)

But not actual MongoDB::MongoClient::
% perl -l ./test.pl | grep -E "^MongoDB::MongoClient::" | wc -l
0

I'm open for any comments and waiting for your approval of a merge request :)