Initial framework for discovery-dirs functionality

Create accessor for the :discovery-dirs entry in the configuration structure.

Create a skeleton discovery-dir-def module for validating and interpreting
discovery-dir definitions in the config file.

Split up existing validation-related code into new validation module. Document
the validation concept in the module once, rather than in each function that
performs validation. Validation functionality is already present in the config
and source-def modules, and now it will be added in discovery-dir-def.

See https://github.com/google/hesokuri/issues/8
Create validation/conditions macro for easier sequential checks
Add support for :passes to the validation/conditions macro

This allows delegation of the validation to a separate validation function.
Make validation logic in source-def use validation/conditions macro
Move testing utility modules to src directory

Rather than mixing testing utility code with actual tests, move them to
src/hesokuri/testing.
Move validation-is-correct testing function into a shared module

In the process, add a docstring and change the name from "error-is-correct".
Add validation logic for discovery-dir-def module