Rewrite 33% of module

* Add WebView support
* Add HorizontalScrollView support
* Remove duplicate code
* Register receiver in another place
* Code cleanup

ScrollView/HorizontalScrollView not tested
Need deep test before release.