Makes operator checking deterministic in Query.filter.

The order of dictionary keys is not guaranteed between runs of
code so `expression`s ending in '>=' or '<=' were sometimes
matching for '='.
Adding test to make sure the correct operators get set on filter.
Using operator dict in datastore.query and splitting on whitespace.
Adding test for datastore.query.filter with no operator used.

This was to get test coverage back to 100%.
Merge pull request #294 from dhermes/query-operator-fix-dict-random-order

Makes operator checking deterministic in Query.filter.
Refactoring duplicate code between storage.key and storage.bucket.