copy properties, not just fields

Right now if class A extends class B, and there are accessor properties defined on A, the getter is invoked and the returned value set on B, instead of the property being copied.

this patch copies properties using effectively:

```js
  Object.defineProperty(B, propName, Object.getOwnPropertyDescriptor(A, propName))
```