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.
Is `@Encrypt` the best name for this?  Perhaps `@Encrypted` or `@Secure` is better.