Reject unrecognized fields in queries

This surfaces a programming error quicker, making debugging easier and avoiding
an unnecessary roundtrip to Cloudsearch.

This change should be fully backward-compatible.

The majority of changes in this pull request fix up existing unit tests to use only existing fields.