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 

It seems like a concern of `parse_quoted_fragment` to return a Ruby string. I see why you want to move the cursor, would defining a struct that returns the new cursor and the string be a more clear way of doing this? Overkill?