Move files into wrappers subdirectory
Automatically generate and extend wrapper classes.

This works by using reflections of both the prototype object and instance
objects. When going through the instance object we check if the property is
already defined on the prototype chain to prevent defining properties too high
up in the prototype chain.