Implemented init-value and init-thunk specifiers.

* Extended slot metaobjects with init value/thunk specs.
* Intergrated init value/thunk usage for user-defined classes.
* Specified default values for slots of predefined classes.
* Refactored predefined metaobject initialization.
* Corrected construction of effective slots w.r.t. default init values.
Added required slot initialization specification.

* Extended metaobject definitions with init-required spec.
* Integrated required slots into predefined metaobjects.
* Added support for required slots to user-level classes.
Added checks and assertions of invariants implied by initialization.

Unknown slots are not actually errors (see protocol/inheritance),
but I would like to be notified if I use some invalid keyword in
definition of some predefined class.
Implemented new restrictions on slot inheritance w.r.t. init specs.
Merge branch 'initialization'