Bug: Incorrect implementation of keyset.contains and indexOf.

Due to a cut and paste error, instead of === 0, we tested for <= 0.
Added query.js unit test that exposed this issue in a query.
Improve query search when using a condition with the store's key.

When using the store's own key, we would use a filter instead of a
proper keyset or range query. Now, the code should be much faster
executing queries like this: { <store's key> : "some value" }