Feature/password web encryption

This PR includes the encryption methods for UI using CryptoJS SHA256 to generate a hash of the user password. With this hash, we generate a secure passphrase using PBKDF2 with 1000 iterations (customisable in config.js) and then encrypt all the wallet data (localStorage) using AES.

Fixes #154