SecretKey for AES keys instead of raw byte arrays

as proposed in #53:

utilize the Java KeyGenerator to create AES keys instead of using raw
byte arrays filled by SecureRandom.

This PR is based on #181. I'll lock until #181 is merged or closed! Only 451c875 is relevant for this PR.

closes #53