Several fixes for recently discovered bugs

* super: I forgot constructors cannot return primitives.
* arrows' "no prototype": The "blank 'name' property" aspect is removed, as in a fully conforming environment the arrow's name would actually be set to that of the var (as per the function "name" test) and as such the rules for an arrow's name match those of anonymous functions.
* "setPrototypeOf" Proxy handler: This handler is required to return a Boolean.
* Reflect: added missing tests (for `enumerate`, `preventExtensions` and `ownKeys`) and gave each of them a conformance test (rather than just an existence test).