Annotation based Serializer and Deserializer

This PR adds support for annotation based serializer encryption and deserializer encryption.  To use this feature, you need to create a CryptoModule and add it to the ObjectMapper.

Registration of the module looks like:

```
EncryptionService service = ...;
ObjectMapper mapper = ...;
mapper.registerModule(new CryptoModule(service));
```

And the annotated properties look like:

```
  @Encrypted
  public String property;
```

This PR is a work in progress.