Improved error reporting and validation.

Centralized validation as first clauses of frame/3.
Report invalid rolls and totals as separate error types; include bad values in return.
Updated tests to match; report test number in failures.
Made game_test.erl an escript.