Provide defines as local variables in if-expressions.

If-expressions can now access the values of variables defined at the
command line (using -D or -E). Undefined variables default to False.
This enables many if-expressions to be simplified, e.g.:

Before: <if expr="pp_ifdef('enable_foo')">
After:  <if expr="enable_foo">

Before: <if expr="defs['foo'] == 'bar'">
After:  <if expr="foo == 'bar'">

This also improves evaluation performance by caching compiled code
objects, leading to a 3x evaluation speedup while processing
generated_resources.grd (0.35 -> 0.12 sec on my machine).

R=joi@chromium.org

Review URL: https://codereview.chromium.org/156443002

git-svn-id: http://grit-i18n.googlecode.com/svn/trunk@150 7262f16d-afe8-6277-6482-052fa10e57b1