huge commit to support ES5. Mainly: rewriting Class & Object core files.
still need some work to be finished.
the goal is to be able to keep the Object.defineProperty while creating
class or cloning, merging, appending object, ...