types: addition of EncryptedType

* Adds a type that has the name `EncryptedType`. This type gives
  the possibility to encrypt a value, so that in the database exists
  the encrypted form of the value and not the original one. When
  a value needs to be read(and is of type `EncryptedType`) the value
  automatically decrypted in order to present to the user.

* Two encryption/decryption engines are currently implemented.
  One is using the AES algorithm and the other is using the
  Fernet algorithm. These are implemented in a library that is
  called Cryptography.

* Inside the tests folder there is a test whose name is
  `test_encrypted` and tests the functionality of the above type.

* Inside the `encrypted.py` file there is documentation with a
  complete example. Also the `data_types.rst` is modified in order
  to add a section for the `EncryptedType`.

Signed-off-by: Konstantinos Kostis <konstantinos.kostis@cern.ch>