DRILL-7181: Improve V3 text reader (row set) error messages
Adds an error context to the User Error mechanism. The context allows
information to be passed through an intermediate layer and applied when
errors are raised in lower-level code; without the need for that
low-level code to know the details of the error context information.
Modifies the scan framework and V3 text plugin to use the framework to
improve error messages.
Refines how the `columns` column can be used with the text reader. If
headers are used, then `columns` is just another column. An error is
raised, however, if `columns[x]` is used when headers are enabled.
Added another builder abstraction where a constructor argument list
became too long.
Added the drill file system and split to the file schema negotiator
to simplify reader construction.
Added additional unit tests to fully define the `columns` column
behavior.