Performance tests

I made some example fleet computations for the test cases in the
previous patch.  In this patch, I've extracted the implementations of
those examples into separate files, and parameterized them so that you
can run them on different input sizes.  The test cases run the examples
on fairly small inputs, because we only really care about correctness
there.  There's now a new performance test program (which is not run as
part of the standard test suite), which runs each example on larger
inputs, and outputs the running time of each one to stdout.  This will
let us track how future changes affect the performance of the library.
Cache used task entries

The single-threaded scheduler now caches used `flt_task` instances in
each execution context.  The sequential_run and concurrent_batched test
cases now run much more quickly, since this greatly reduces the number
of `malloc` calls we have to make.  For sequential_run, it's now O(1),
and for concurrent_batched, it's now O(batch_size); before they were
both O(input_size).  The concurrent_unbatched test case isn't any
faster, since it still has to make O(input_size) `malloc` calls.