First pass at config decryption

@jtdudley2 First pass at integrating config decryption.

ConfigBinder is now an injected object since adding a dependency on a Decrypter bubbled up to every component using it otherwise.

Though this pull request technically works, I don't think it is the right solution and would like to hear some other options. For example neither of these is necessarily a good idea:

- Decrypter must be constructed manually by the app (GuiceConfigBuilder.setDecrypter())
- Decrypted values are just re-injected with a "decrypted/" prefix currently

Ideally I'd want to annotate a field with @Encrypted and have it automatically appear in plaintext. But multiple @BindingAnnotations can't coexists, so this wouldn't work for @Named fields. One solution may be to make @Encrypted behave like @Named, i.e. @Encrypted("#field")