Make CMap.map quasi-private.

This makes it easier for the representation to be improved.
Optimize CMap.prototype.forEach().

This change avoids the element stringification caused by for..in for the
vast majority of CMaps.

When loading the PDF from issue #4580, this change reduces peak RSS from ~650
to ~600 MiB, and improves overall speed by ~20%, from 902 ms to 713 ms.  Other
CMap-heavy documents will also see improvements.
Merge pull request #5101 from nnethercote/CMap-forEach

Avoid expensive for..in loops involving CMaps