Various refactorings.

There are a lot of changes I did while reading code. Mostly refactoring of various kind. 

 1. Parser is moved to separate module. 

 1. CSS and JavaScript moved to separate files which are read at the runtime. It also make possible to supply custom CSS/JS if neeeded. 

 2. Small tweaks to CSS

 2. HLint suggestions and small refactorings. Type signatures are added for all top level bindings. Many functions are floated to the top level. Both help readability. Former makes easier to understand what is the function and latter makes sure that function doesn;t depend on something from enclosing scope.