fix(parseKeyValue): ignore properties in prototype chain.

Previously, properties (typically functions) in the prototype chain
(Object.prototype) would shadow query parameters, and cause them to be
serialized incorrectly.

This CL guards against this by using hasOwnProperty() to ensure that only own
properties are a concern.

Fixes #8068
Refactored the test to not modify `Object.prototype` --- still fails without the change in Chrome