Support a client-side Monero wallet in JavaScript
This issue requests support for a client-side Monero wallet whose only dependency is a daemon in order to synchronize blocks and maintain wallet state locally.

The wallet will not share its view key with a 3rd party in order to offload processing of incoming transactions.

The preferred implementation is to refactor [Monero Core's wallet2](https://github.com/monero-project/monero/blob/master/src/wallet/wallet2.h) in order to separate core wallet cryptography and functionality from bundled dependencies so that the Core wallet can run in the browser using wasm.  More generally, refactoring wallet2 will allow applications to access the Monero Core wallet in different runtime environments more easily.  This has been discussed and generally supported among Monero Core developers pending a pure, "algebraic" refactor of wallet2.

Some client-side wallet functionality can be supported without being a full wallet, like local generation of a seed and generating/querying subaddresses.  Some of this has already been implemented in MoneroWalletLocal.js (needs updating at time of writing).