Switch from buffers to strings for Python
Refactor parse state; add per-thread/process cache
Add fixed_buffer constructor