Start of row-level validations and tests

This commit contains the basic info required to validate errors on
a given row and currently handles all of the main error cases in
the scoping document.

It does not yet handle Species DBH/Height and Trees Nearby restrictions
(stuff that is non-fatal and goes on the tree watch list)

In addition, none of the choices fields are handled (yet)