pair down args to beginhook

All of the information contained in $data and passed to beginhook
is accessible via `$am->get_project->...`. Therefore, don't pass
`$data`. Update tests to match.
add test item argument to all applicable hooks

Add the test item as an argument to all applicable hooks. Update
the tests as needed. For now the manner of doing this will be
somewhat temporary; rebuilding the array argument for each
is clumsy. Update tests and TODO accordingly.
add result to applicable hooks

Pass in a `Result` object to `endrepeat` and `endtest` hooks, where
variables such as `sum`, `pointermax`, etc. were being tested directly.
No more of that! Woo hoo!
reorganize hooks test file

Organize each hook call into its own subtest so that only 35 tests are
run instead of 254. Eliminate duplicate code by generating the hook
subs at run time. Save the number of tests used by each test sub for
planning subtests.
pass @results into endhook

All of the results have been aggregated by the time `endhook` is
called, so pass them in as well. Update `10-exports.t` to match this
change.