0.4 pre

### rebased ontop of master with revert of Raynos changes

I continued with single file in `lauri` branch and have implemented all essential features.

The maximum numbers of lines in one file is arguable but for me 300 lines seems acceptable.

What do you think - is it light weight enought and fits into scope?

I did not understand your documentation file `docs.mli` so I didn't touch master branch.

I also removed newlines from toString - there are no newlines and spaces in browser `document` methods.