Update ERROR macros to provide some additional convenience

ERROR() and ERROR_AT_COLUMN() now rely on ERROR_AT() which performs the actual
work. ERROR_AT() can be used when specifying a line for an error is necessary.
Others are simply for convenience.

The ERROR_AT() macro is used by new parser code in certain cases, and
so those patches are blocking on this as well as #230 and #231