Use table driven test

This simplifies reasoning about the tests by not hiding logic behind a
DSL.
Merge remote branch 'kortschak/tables' for #47

Conflicts:
	query/gremlin/functional_test.go