Calculate capture rect in browser

This allows to:
- Save number of requests to remote Selenium instance: instead of 4 requests per element, now we are sending 1 for all of the elements.
- Perform scrolling to correctly capture out of viewport region in browsers, that can't return `body` screenshot.

/cc @arikon 
Its [`evil`](http://jshint.com/docs/options/#evil)