Simplify Value Compaction

The difference is that Value Compaction doesn't create new objects but just tries to compact values to scalars. Keyword aliases are thus handled directly in the Compaction algorithm.

This addresses #218.