Two stage process - Substitution & Transformation

Stage 1

A Substitutor goes through the raw source, replacing any strings,
arrays, objects or method/property invocations with placeholder tokens,
depth first. When doing so, it retains the original value of the thing
being substituted.

Placeholder tokens use the format:
  _____CREAMER_<TYPE>_<ID>_____

This makes parsing and tranforming invocations much easier, since we
know all of them will match the pattern, "(a a:a a:a ...)". We don't
have to worry about any nested values.

Stage 2

The Compiler searches the substituted source, finding all instances that
match the pattern above. For each one, it transforms the value of the
substitution to Coffeescript, depth first.
Reorganizing transformer classes