bug 1092231 - fix traits to work with Symbols

> it's mixing and sometimes returns only own, and other times all (enumerable, string) property keys. most of the time, at a single point in code, you are either interested in all or only own properties.

That is not true `Object.keys` returns all own enumerable property names, while `Object.getOwnPropertyNames` returns all own enumerable + non-enumerable property names. It's just matter of specifying which one you want to use, maybe indeed having {nonenumerables: true} isntead of names: true would make more sense.