Fix tests to expect that named colors are preserved.
Refactor and simplify variable storage and expression evaluation.

Variables, functions, and mixins are now all stored within a single
Namespace object, which can easily spin off child namespaces.

Calculator methods no longer need to accept a rule at all, making it
possible to parse and evaluate expressions in a vacuum.