feat: implement coercers
feat: add object and list coercers
feat: add optional coercer to Param
refactor: organize modules
chore: more test helpers
test: write some basic specs
test: list_of specs
feat: list with extras coersion
fix: fix ::f64() and ::u64(), write specs to ::object() coercer
refactor: rename `extra` to `nest` in all codebase
fix: add parameter DSL and rename `Builder`'s API methods
feat: `allow_null`
feat: allow and reject
feat: add `FunctionValidato`r and `validate_with` DSL
feat: regex validator
feat: add validations field to Builder; start implementing common validations
fix: error in coercer
feat: new error format
feat: refactor coercers for single responsibility
refactor: refactor `Param.process` method