Preserve empty unrecognized @-rules.
Remove _skip_word_re.

This was an optimization to short-circuit evaluating any expressions
that don't appear to contain Sass syntax, but it was wrong: the
particular case I ran across was `foo, bar` not being parsed as a list!

Removing it added only 3% to the test suite runtime.  We can see about
resurrecting the idea later, after the suite actually passes.  :)
Support scope blocks like `background: red { ... }`.
Extend float rounding to 5 digits, to match Ruby sass.
Add py.test wizardry for running a subset of file tests.  Fixes #134.
Slightly smarter test file filtering.
Fix a recent bug that caused some blocks to come out in the wrong order.
Always "dequote" when doing #-interpolation.
Rework expression parser to spit out an AST rather than evaluating as it goes.
Remove rule and library from the expression grammar.
Replace CachedScanner with an AST cache.

Slows us down a bit; still figuring out why.
Move Calculator into expression.py.
Promote eval_expr and interpolate to Calculator methods.
Break functions and mixins out of rule.options.

Also introduces ChainMap, used for scoping instead of options, and
subclasses it to build in the variable name normalization.
Start using new_child on context instead of copy.
Minor cleanup, moving towards less entanglement of rule instances.
Move @return out of options.  Update an old test to match Ruby.
Avoid expanding colors on load.