BREAKING CHANGE: the library will now be published as loose ES modules.
Library users are better informed on bundling needs, and repeated bundling introduces extra boilerplate code.
BREAKING CHANGE: the include type requires a significant subset of
the synchronous fs API to be provided when creating a schema, even
if the include type is never used. Since the resolution must be
synchronous, the include type is limited to local fs and memory
access, and not very useful with network loading. It has been
removed from the default schema, but can be included by calling
`createIncludeSchema` instead.
BREAKING CHANGE: this allows multiple schemas to coexist, but requires
each schema to be created with a call to `createSchema`, taking a set
of options that includes the former `includeOptions` singleton.
BREAKING CHANGE: rather than use the `fs` functions (`existsSync`,
`readSync`, etc) to include files, this uses fields of the `includeSchema`.
To maintain the previous functionality, fields should be set as follows:
- `exists = existsSync`
- `read = readSync`
- `resolve = realpathSync`