IndexedDB: Skip keypath tests for non-cloneable values

Per discussion in https://www.w3.org/Bugs/Public/show_bug.cgi?id=26492 we probably want to clone before extracting keys using keypaths. Chrome already does this, other implementers seem to agree. The spec is written in a non-algorithmic style, so it's ambiguous.

With this change, all potential key types are still tested as explicit keys. But a secondary test, embedding potential key values into an object and using implicit keys via key paths, is not done if the value is not cloneable, since it could fail with either DataCloneError (if cloning is done before extraction) or DataError (if cloning is done after extraction).