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.
Noticed that after I commented :smile:. maybe a ```grunt rebuild``` or explicit ```grunt build``` to rebuild endtoend, while normal ```grunt``` just does the jslint / unit tests as it does at present.