Cleaned up tests, made multipassing optional and implemented thrust-backend for perf-test.

Disabling multipassing is important because there are obviously many cases where multipassing is not a good idea (for example when producing each value or key
requires extensive processing).