Fixes but 960409 and adresses review comments including removal of do-while construct
Use [].forEach instead of for-..-in in evaluator

To prevent errors whenever the array's prototype is extended.
 (cmap is an array)
Using blob URL for open file
Basic function.js split
Implements shading types 4-7
Merge pull request #4131 from karlden/findUnboundedRecursionBug960409

Fixes find functionality recursion (bugzilla FF bug 960409)
Refactors nextPageMatch (nits)
Merge pull request #4210 from yurydelendik/issue4131

Refactors nextPageMatch (nits)
Implements mouse wheel behaviour for non-Firefox browsers
Merge pull request #4200 from timvandermeij/ie-mousewheel

Implements mouse wheel behaviour for non-Firefox browsers
Fixes PDFDocumentProxy.getDownloadInfo API name (and refactoring)
Merge pull request #4179 from yurydelendik/dataLoaded

Fixes PDFDocumentProxy.getDataLoaded API name (and refactoring)
Merge pull request #4205 from yurydelendik/blob-open-file

Using blob URL for open file
Reduce memory consumption of simple black and white images.
Merge pull request #4181 from nnethercote/compact-images

Reduce memory consumption of simple black and white images.
Dynamically determines how to split patch into triangles
Respects current ctx scale for mesh pattern
Print shortcut: Ctrl + (Shift +) P only

The previous version interfered with the full screen shortcut
 (Ctrl + Alt + P).
The new version only intercepts Cmd/Ctrl + P (all browsers).
And Ctrl + Shift + P in Chrome / Opera (Presto and Chromium),
because these browsers also associate a Print operation with
the shortcut.
Merge pull request #4187 from Rob--W/issue-4183

Use forEach instead of for-in (was: Replace [] with {} in core/cmap)
Removes scolling jank after bw image optimization