Rewrote the plugin adding system.

Now instead of adding the plugins to prototype chain it will create a member specific member of the prototype.
This will help if we want to play around with references, making Z more powerful. (However there was a performance loss.)

Also reworked the plugin property system. Now instead of adding the properties to plugin functions it will add properties to Z.prototype.__plugins object.

Added chaining tests