feat(core): add den.lib.strict for disabling freeform types (#428)
## Summary
Adds new a new lib module `den.lib.strict` which when imported into a
submodule type (usually via den.schema) disables the freeform type which
is prone to subtle bugs with scoping and mistyping problems.
It works out of the box with `den.schema.host` and `den.schema.user`,
but the types of aspects and flake didn't import a schema type so I
added those too.
I've also added support for asserting errors with `denTest`
authored by