Rewrite Crypto

I realised that the crypto API was all wrong when compared with the
MessageGateway API. Started rewriting it with the plan to bring the
MessageEntity in to play with the Crypto module.

In addition, the KeyEntity will be created and UserEntity as they will
become pieces of data used within the application.