Use [].forEach instead of for-..-in in evaluator

To prevent errors whenever the array's prototype is extended.
 (cmap is an array)
Basic function.js split
Implements shading types 4-7
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
Merge pull request #4217 from Rob--W/fix-print-shortcut

Print shortcut: Ctrl + (Shift +) P only
Update Grab to pan to fix performance issue

Reported at http://stackoverflow.com/questions/21392844/pdf-js-recalculating-problme
See also https://github.com/Rob--W/grab-to-pan.js/commit/e0f893753ac10a5c97159fd01155b05d234f4c0f

Changes versus grab-to-pan.js: Moved inline style to viewer.css,
lowered z-index from 2e9 to 50000 (note to future maintainers:
make sure that all other z-index values stay below 50000!).
Merge pull request #4209 from Rob--W/grab-to-pan-performance

Update Grab to pan to fix performance issue
Use Array.join instead of += to build up strings in the Lexer.
When lexing numbers, look for digits first.
Don't create a string when lexing all-digit integers.
update l10n strings and squash commit
Merge pull request #4213 from nnethercote/strings

Create less garbage while parsing
Get rid of weird scrollbar on mouse down
Merge pull request #4223 from Rob--W/grab-to-pan-overlay-fix

Get rid of weird scrollbar on mouse down
Merge pull request #4221 from rabbihossain/master

add and update Bengali (bn-BD) l10n
Bengali updates