Soycode jsrefactor

This is a typescript->JavaScript refactor, also addressing these issues:
https://github.com/freedomjs/freedom-pgp-e2e/issues/9 (eliminate uproxy-lib dependency)
https://github.com/freedomjs/freedom-pgp-e2e/issues/10 (update to freedom 0.6)

Additionally the demo is now a general freedom app and not a chrome app. That said, it's actually failing in Firefox right now due to an end-to-end error:
"Module Failed" Object { isTrusted: true } freedom.js:1291
Error: Seed is too small. end-to-end.compiled.js:231

I still think it's worth merging as I know other people are interested in looking at crypto code and this is definitely a better starting point. I'll look into the Firefox issue but given that the error is happening on the end to end side the fix may not be in our codebase.
We seem to have an implicit expectation that userId looks like
```name <email>```.
Should there be a check that userId matches an appropriate regex and otherwise reject the promise?