compiler: Fix (for-each) to alias (map)

(for-each) was accidentally an alias for (vector-map) and a matching
typo in the function test didn't catch it.
stdlib: Add (scheme cxr) library

This is generated using a simple helper Scheme program
called generate-cxr-library.scm.
stdlib: Move (digit-value) to (scheme char)

R7RS places (digit-value) in (scheme char), not (scheme base)
stdlib: Implement (scheme char)

This implements the (scheme char) library. These are trivial wrappers
around existing functionality in UnicodeChar.h
compiler: Have adapted procs use compact types

When building a procedure signature from a Scheme procedure type prefer
unboxed values. This matches what we do with planning lambdas.

This was motivated by the (string-map) where the majority of its mapping
functions will not want to box and unbox character values. This allows
them to take simple 32bit integers representing the character's code
point.
compiler: Implement (string-map)

This could be implemented in terms of (map) or (vector-map) but boxing
and unboxing characters can be extremely expensive. This implemention is
far more efficient that a Scheme reimplementation would be.