Type check arguments to NOT
Decrease precedence of NOT

Give NOT a higher precedence than AND, OR and XOR, but lower than
everything else.
Merge pull request #1284 from cleishm/not_precedence

Decrease precedence of NOT
Create new format for the (Lucene) LabelScanStore.

The NodeRangeDocumentLabelScanStore overcomes the 2B document limitation in Lucene
by storing information about labels for multiple nodes in each Lucene document.

Each lucene document represents a range of 32 or 64 (configurable) nodes with same high order bits.
Each document contains a field for each label that any node in the range has. The value of the field
is a bitmap with a bit set for each node in the range that has that label present.
Adds the ability to do label scan search as a Term Query.

Potentially this is more efficient than using Range Queries to emulate "key presence" queries.

This is done by having a separate field that is indexed only (not stored in the document) for searches,
and then not indexing the bitmap field. So storage wise, this implementation should be about the same.
Although it is possible that both in terms of storage overhead, and query efficiency having multiple
different indexed fields is sub optimal, in which case this implementation would be better.
This is to be determined by benchmarks.
Use the NodeRangeDocumentLabelScanStorageStrategy.