FEATURE `_validate_scalar`

`_validate_scalar` uses the new validation pattern.

`ValidationError` takes a list of error dicts as positional arguments.

`make_error_dict` returns correctly-structured error dicts.
FEATURE `_validate_dict`

`_validate_dict` uses the new validation pattern.

Add `capture_errors` and `raise_if_errors` helper functions.
Better
FEATURE `_validate_DictOf`

`_validate_DictOf` uses the new validation pattern.
Finish tests
Done: `_validate_DictOf`
xxx
FEATURE `_validate_list`
Done: `_validate_list`
FEATURE `_validate_ListOf`
Done: `_validate_ListOf`