Line parsing

Re-wrote the gherkin parsing tokenising stuff to better enable extensions