WIP sqlalchemy: refactoring and addition of Encrypted Type

Be careful with double underscore methods (`__foo`), I would 

http://legacy.python.org/dev/peps/pep-0008/#descriptive-naming-styles
> __double_leading_underscore: when naming a class attribute, invokes name mangling (inside class FooBar, __boo becomes _FooBar__boo; see below).

Read also http://igorsobreira.com/2010/09/16/difference-between-one-underline-and-two-underlines-in-python.html