only fetch char once for built-in cclasses

Many of the cases fell through and refetched the character at an
offset into the string.  (Worst case, \w would do 7 fetches and 6
table lookups on any CJK character!) Now we just fetch once into the
cp var, and call the property lookup function directly.  (Having cp
handy also allows us to short-circuit the ASCII lookups and avoid
the Unicode tables entirely in the common case.)