Using `Object.create` for prototypical inheritance

Creating class instances as prototypes for subclasses can have unwanted side-effects. Also currently `BaseNode.initialize` is called multiple times per node (once for `new baseNode()` and from the `initialize` method of the subclass, e.g. `Action`).
All major browsers support `Object.create` now, which is the preferred method.

Also I removed the assignment of `initialize` to `cls.prototype.initialize` as it is not necessary. 

Tell me, if you need any adjustments! :)