done bits
* fix all the ``*-into`` functions/methods to take the destination
variable name as 1st argument (otherwise optional arguments become a
mess)
next bits…
* expose namespace open/close, and ``namespace $name; do …; done``
- use them inside ``class_open`` / ``class_close``
* formalise that ``bos-dispatch/invoke $class 0 $method $args`` is a
class method invocation
* ``bos/mop/base`` + ``bos/mop/inheritance`` become ``bos/meta/class``
* add ``bos/meta/attribute``
- store values in ``bos-namespaces/store-*-for-into attribute
$attrname $defining_class $object_class $object_id`` (notice, we
also need the class that owns the attribute, not just the class
that generated the object, because attributes are local to the
class, they're not inherited!)
- ``get-value`` / ``set-value`` methods
- add name, type, owning metaclass as attributes to itself
* add attribute support to ``bos/meta/class``
- ``find-attribute-into``
- ``add-attribute``
- add class, mro, as attributes to the metaclass
* store class→metaclass association somewhere (global dictionary,
probably)
- when creating a class, create a metaclass instance and store it
- the store must be pre-populated with metaclass instances for:
+ ``bos/mop/class`` → ``bos-dispatch/invoke bos/mop/class 1``
+ ``bos/mop/attribute`` → ``bos-dispatch/invoke bos/mop/class 2``
and those instances' attributes must be manually stored