Generize create logic level below

It's now `_extend_` directly on prototype
Move `_createNested_` to `_extendNested_` on proto
Shorter extendNested for sub nested extensions
Use _extendNested_
Improve inheritance of nested objects

Nested objects so far strictly inherited from Type.prototype,
where Type is type defined in property descriptor.

With this change nested will inherit from nested object chain below
unless there's a descriptor with defined type for current branch.