Ported lax_parse() to C, 15% faster

Ported lax_parse() to C and cleaned up prior code. New benchmark results:

```
                 user     system      total        real
Liquid:      0.000000   0.000000  26.770000 ( 26.820869)
Liquid-C:    0.000000   0.000000  22.710000 ( 22.767058)
Ratio: 84.88561094588167%
```

Passes all current Liquid tests. Thoughts?

@camilo 
@dylanahsmith 

This can happen when the markup is empty, among other cases. It avoids is_quote_delimiter from dereferencing the one-past-the-end character since Ruby strings aren't necessarily null terminated.