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.

Renamed error parameter to avoid name masking callback name
Merge pull request #234 from caitp/error-macros

Update ERROR macros to provide some additional convenience