Making the evaluator more strict.

Introducing an identifier type, and enforcing that
pipe-separated expressions start with one.
Also throwing an error when an identifier is undefined at runtime.