Introduce iobj_t

This always available type (included in konfig.h)
offers macros to construct interfaceable objects.

The standard structure of an interfaceable object
are two pointers. The first points to the object data.
The second points to the function table implementing
the interface of the object.

   struct objtype_t {
      struct objtype_t  * object ;
      struct objtype_it * iimpl ;
   } ;

This definition allows any object without introducing
any additional "vtable" pointer to be used through an
interface. This definition is not useful for high
volume interfaceable objects but it is for objects
used as a single instance per thread.

------

Also refactored part of konfig.h into "C-kern/api/context/stdtypes.h".
Add different init modes to threadcontext_t

The config database C-kern/resource/config/initthread
is changed. Two columns "inittype" and "objtype" are
added to support different initialization modes.

Type "initthread" calls the initthread_MODULE functions
as before. Type "interface" replaces the standard initialization
procedure for interfaceable object (iobj_t) used in some
initthread_MODULE implementations.
Type "object" replaces the standard initialization procedure
for objects without an interface.

Namely
 (init|free)thread_mmtransient,
 (init|free)thread_objectcacheimpl,
 (init|free)thread_logwriter,
 (init|free)thread_syncrun
are removed and implemented in (init|free)_threadcontext
with inittype set to "interface" or "object".

Removed includes of interfaceable objects from "api/context/treadcontext.h".

Replaced object types with anonymous types:
  pagecache_t with iobj_DECLARE(,pagecache),
  mm_t with iobj_DECLARE(,mm),
  objectcache_t with iobj_DECLARE(,objectcache)
  log_t with iobj_DECLARE(,log)
Remove include of errorcontext.h

The header file "api/context/errorcontext.h" is no longer
included from "api/context/processcontext.h".

errorcontext_t is replaced with an anonymous struct.
Source code lines accessing error_maincontext() are adapted.