cleaned up data/outcome mismatch handling/testing

Reduce two separate if() statements to one that uses an `xor` instead
of the simpler `&& !`. Remove the TODO note about the missing test
case, which is no longer needed. Change test to match new error
message.

Rename the utilized test data to reflect exactly what it is ("bad" is
rather ambiguous).
reorganize add_data and project error tests

The test for mismatched data vector size can be done using just
`add_data`, so remove the test project and check the error using
`add_data` instead. Reorganize the tests so that `add_data` errors
and project file contents errors are in separate test functions.