util: type aware Object wrapper, and parameter type checker.
util: type aware Object wrapper, and parameter type checker.

* specl/util.lua (Object): New prototype inheriting from std.Object.
with the addition of a "type" field.
(typeof): Report the type of Object derived objects, or defer to
core type() for built in types.
(type_check): Compare types from a parameter list against valid
type list, raising an error for a type mismatch.
(type_error): Write a parameter type mismatch error in the style
of Lua core function parameter type errors.

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

gvvaughan/specl