Refactor exceptions in build_file.py and build_file_parser.py to derive
  from a common baseclass and eliminate throwing IOError.
Clean up some terminology and add comments about conventions for keeping
  types cleanly separated.
Catch errors from parse errors in the BUILD file and format
  context around the exception.
Revive error message that prints out alternatives to an incorrect build target.