Cleanup components and README.
* Update README for current development process.
* Enable strictNullChecks in TypeScript and update accordingly.
* Use new naming convention for element variables in TypeScript.
Implement theme selector.
User can now choose the default theme to display the website in.
The theme will be applied immediately without page reload once
selected in the theme selector. After selected, the theme identifier
will be stored in a cookie (`_theme`) and the app will use that cookie
to select the correct CSS class to render on the next page load.
Theme selection is done in both client side (via the theme selector)
and on the server side (via the `user_theme`) in order to prevent a
quick page flashing in large pages (e.g. full topic view) which is
Move from whatwg-fetch to XMLHttpRequest.
Since whatwg-fetch currently doesn't support cancellation and
we need to be able to cancel the request. This commit replace
whatwg-fetch and any code that relies on it to use XHR with
Use Typings instead of TSD.
TSD is now deprecated. See also GitHub issue: