rename bigsep and smallsep

Make the usage/meaning of bigsep and smallsep clearer by renaming them.
Copy them into local variables in data_sub to make it clearer/faster.
test for invalid data lines

Instead of just exploding with a bad input file, die with a decent
message when an invalid data or test file is provided.
move api constructor tests into 01-api.t

Some of the tests in `02-project_dir.t` had nothing to do with project
directory processing. Move these into `01-api.t`, placing them in the
new `test_constructor` method. Also add two tests that check that the
constructor doesn't throw errors if given valid parameters.
rename subtooutcome

To make the variable name more consistent with other variables, rename
`subtooutcome` to `context_to_outcome` (`context` is used elsewhere,
and snake case is better).
require Project object in AM constructor

Simplify argument handling in `AM.pm` by requiring the project input to
be a `Project` object, no longer allowing a project path. Update tests
and `Changes` accordingly.
change commas parameter to a boolean

Change the `commas` parameter to the `Project` constructor to be a
boolean instead of `yes` or `no`. This simplifies processing and
testing a tad, but more importantly makes it consistent with normal
practice and with the treatment of other parameters in the
distribution.
update TODO

Revise and update `TODO.txt`. Consolidate as much as possible. It's much shorter now!
fix various errors found during release testing

Most of these are unused variable errors. One naked subroutine in
`AM.pm` fixed, and also one non-lexical loop variable in `Result.pm`.
Still need to fix the bajillion naked subroutines in `Result`, however.
log file format being used

If the user accidentally gives the wrong file format, the produced
error can be rather cryptic. Log a message to inform the user of
the file format being used to parse data and test.
Update Result documentation

Add description and synopsis sections, as well as covering all of
those naked subroutines that perlcritic so prudishly detested.
Use Text::Table to print info from Result

Stop with all of the `printf` formatting mumbo jumbo. Just use another
module that is designed to handle table printing for you. This should
greatly simplify the storing of data in projects, as much of the logic
revolves around calculating the format variables.

Update tests and TODO, as well.
Remove format variables

Now that we use `Text::Table` for printing, we don't need
those format variables around. Remove them, update tests
and `Changes`, and be happy.
add tie result to statistical_summary printout

Instead of only reporting correct/incorrect in the statistical_summary,
also report ties. Add tests for incorrect and tie situations, and
reorganize the tests for `Result`. Rename the test file, as the only
things currently tested in that file are summary printouts. The rest
of it is tested in the classification tests.
reorder rows in statistical_summary

Reorder the rows in the table returned by `statistical_summary` so
that all of the numbers are together (this looks better because they
are alligned with eachother separately from the string entries) and
so that similar things are adjacent (namely the bits about test item
exclusion).
show supracontextual undefined vars as asterisks

Instead of blank spaces, which are less clear, show the undefined
variables in the supracontext printouts (`gangs_summary`) as
asterisks.
code style for heredocs

Make these two usages of heredocs consistent with the rest of the file.
Storing them in variables and using them later is easier to read,
anyway.