Add support for encrypted files

### What does this PR do?
This PR allows citadel to load encrypted files from S3.

### How does it work?
Files should be uploaded to S3 encrypted with a secret key.

Here is an example on how to encrypt a string:
```
require 'openssl'
require "base64"

cipher = OpenSSL::Cipher.new('aes-256-cbc')
cipher.encrypt
cipher.key = "password"
puts cipher.update("secure string") + cipher.final
```


Error should also list the attribute being decrypted and some indication (e.g. MD5?) of the decrypt key being used.