object: bake in inherited object type names.

* specs/object_spec.yaml: New file. Examples of how typed objects
should behave.
* specs/specs.mk (specl_SPECS): Add specs/object_spec.yaml.
* std/table_ext.lua (clone, clone_rename, merge): Move from here...
* std/base.lua (clone, clone_rename, merge): ...to here.
* std/table_ext.lua (M.clone, M.clone_rename, M.merge): Re-export
implementations from `std.base`.
* std/object.lua (Object._type): Name the `type` of this object.
(typeof): Insepet the type of an object, falling back on system
type for non-objectes.
Return the public interface table, with a `__call`able metatable
that delegates to Object for instantiation.

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