Move _lastModified_ to history.js, add _lastEvent_

(tests)
Improve logic order
Define relation on object in 418create
Call serialize on ns if possible
Improve setItem logic

- It uses _update_ function to follow convention of other value objects.
- delete/add logic now is in hands of item.$$setValue.
- $$create is for creating setItem prototype on relation
  $$createItem for creating individual set items
- item.value always returns actual value that item represents
  it doesn't matter whether value is set or not on relation
Improved and unified signal/events logic.

All events that reflect hard database changes are now emited by signal
module. Events are:
- add/remove: fired on namespace, primitive and object types when
  object or namespace is created on it
- update: fired on namespace, primitive or object types whenever its
  value or one of its relations (can be deep relation) value is altered
- dismiss/assign fired on object types, whenever object is assigned as
  property to other object

Signal now calls $$setValue or $$proto on it's own, there's no longer
need to call both $$setValue, and _signal_. This also assures that history is up to date
when update (soft) events on relations are emitted.

Additionally multiple property transition logic was improved, so there's no inconsistencies in a middle (e.g. added items when property is still singular)
Rename $$proto to $$setValue

Now $$setValue in database sense is unified across all types of objects
Rename soft event name from 'update' to 'change'

So it's not confused with hard 'update' event that's emitted on objects