GCM mode for symmetric encryption and also PBKDF2 for password key derivation

Good morning guys,

We can move forward in a separated branch or merge it to master (let me know what works to you). Into this PR:

- Symmetric encryption with GCM mode by default
- PBKDF2 support for password derivation

I'm open for suggestions if you guys are not comfortable with it