Added `data` field to tests, fixed tests and runner.
Provided better syntax for tests.
Added more predicates. Refactored stuff for partial applications.
Implemented internal definitions.
Implemented data-driven tests.
Fixed code style. Renamed stuff. Removed nasty `group-by`.
Added a stress-test to prevent further O(n^2) stuff.
Revert "Merge branch 'data-driven'"

This reverts commit 2fc08bfd4afdc69be1a83fa01bc91913e9d47f7a, reversing
changes made to d8869fda115cefaa39a0f878a2e9d6d395687cf0.
Merge branch 'alternative-data-driven'

Reimplemented data-driven tests in a different way with
different, more simple syntax that is easier to parse.