core: Optimise reference to hasOwnProperty
test: Add qunit-fixture and enable QUnit.config.requireExpects
core: Implement oo.isPlainObject
core: Don't copy non-plain objects in oo.copy

Attempting to copy non-plain objects would turn them into
plain objects and potentially cause all kinds of problems
since non-plain objects usually aren't supposed to be
flat-copied.

If a constructor needs to be cloned, the constructor will
have to implement a #clone method.
Tag v1.0.0