Add --ignore options for testing, fix related bugs

Created a new method in the Tester class, ignore_chars(), to facilitate this.
Found bugs related to ignoring characters.
- For whatever reason, the eof bit was not being set when str.get() returned
  EOF.  Set the bit manually when this happens.
- For checks at beginning of run_verbosely(), used peek() instead of
  get_next_char() to simply test for eof.  Only used the latter when the
  return message warrented it.
- For those same checks, corrected erroneous logic that tested for the same
  thing twice, instead of checking its inverse.
- Nonprinting characters, as might be expected, were not displayed properly
  in error messages.  Created a function to better format them.
- Enhanced return message for too-short or too-long files by saying what
  character was expected next / not expected, and where.