optparse: improve specs and fix uncovered buglets.

* specs/optparse_spec.yaml: Add specs for parse:on.
* lib/specl/optparse.lua (optional): Pass `nil` for missing optarg.
(boolean): Default to `true` with nil valued optarg.
Fold case of argument before value lookup.
(file): Add a FIXME comment for when luaposix support is added.
Don't pollute the global namespace.
Use error message from io.open if opening fails.
Return the passed argument in case of success.
(M): Export the file function handler.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>
loader: rewrite spec loader using lyaml-4 low-level API.

* lib/specl/loader.lua: New file. Load spec files using the
lyaml-4 low-level API.
* lib/specl.in: Use it.

Signed-off-by: Gary V. Vaughan <gary@gnu.org>