Break the AST and grammar into their own modules.

Conflicts:
	scss/expression.py
Move ALL the parsing stuff under scss/grammar/.

Also, in the same vein as Python 3's approach, simply importing from the
"native" module will automatically produce the sped-up versions if
available.

Conflicts:
	scss/compiler.py
Remove some old Python that I don't think is useful any more...?
Several vast improvements to string parsing.

- Interpolation is now understood by the parser!  It works for
  barewords, quoted strings, and both forms of URL.

- Escaped characters are now understood and translated by the parser as
  well!

- Rendering strings to CSS attempts to escape them correctly, regardless
  of how they were put together.

- The block locator (at least the Python version) is now a little more
  aware of CSS escaping.

Unfortunately there are some problems with the C module in this commit,
which I will be promptly fixing.

Conflicts:
	scss/blockast.py
So apparently the C scanner quietly fails if you feed it non-Unicode patterns.
Remove #define DEBUG, oops.
Remove extraneous Pattern_setup function from speedups.
Make the C block locator aware of escape sequences.
Fix most of the catastrophic fallout.

- Unquoted strings really shouldn't be re-escaped at all; oops.

- Use the Url type a few places instead of manually escaping.

- Make a Function type.

- Fix the parsing of maps, and left-factor to get rid of the KW* tokens.
Ruby only treats escapes specially inside quoted strings.
Fix a couple bogus tests.
Understand (and correctly ignore) IE's expression() function.
Stop doing interpolation before parsing.
Fix parsing of a lone interpolation.
Urgh fix this test another way.
Couple more test fixes...
Support CSS calc().
Fix spurious deprecation warning.