Sesi 111 dataset validation

Despite the name, this branch is actually about SESI-168 Minimum dataset validation.
The only validation supported now is controlled vocabulary from a text/csv file.
There is yet no way to enable validation on a project (pending issue), so its always enabled.
As a consequence of this pull, all the tables/views that have variables with an attribute 'vocabulary_url' will have a validation intertwined with indexing (at the row level), and if one value fails, the whole indexing will fail with a message in the log
The method isValid was before indeed in the service impl, but its only used for testing, so i decided to move it here.  This method is just a utility iterator over a table to call ValidationTask.isValid. The real code will call ValidationTask.isValid in a different loop, not controlled by us.