Strict variable parsing

This is the first iteration of the strict C lexer and variable parser. Currently, there is a tight coupling between a few of the methods and Ruby, but this is expected to go away in the future.

Feel free to start reviewing, though this is heavily a WIP and we'll continue making changes tomorrow.

```
/Users/jli/.rbenv/versions/2.1.0/bin/ruby ./performance.rb bare benchmark lax

Running benchmark for 20 seconds (with 5 seconds warmup).

Calculating -------------------------------------
              parse:         4 i/100ms
-------------------------------------------------
              parse:       46.0 (±4.3%) i/s -        920 in  20.045934s
/Users/jli/.rbenv/versions/2.1.0/bin/ruby ./performance.rb c benchmark lax

Running benchmark for 20 seconds (with 5 seconds warmup).

Calculating -------------------------------------
              parse:         7 i/100ms
-------------------------------------------------
              parse:       78.7 (±2.5%) i/s -       1575 in  20.036520s
```

~40% less time spent in parsing, and is very reproducible.

Paired with @xthexder 

@Shopify/webscale @Shopify/liquid
It doesn't look like liquid supports character escapes in strings.  It might be nice to add if we could determine that it doesn't break themes, but that should be done as a separate pull request.