Replace jison with custom parser

Fixes #25. 

As the commit message says, it's an almost-straight port of webkit's parser.
Code style and other nitpicks welcome.