In 4.4 and earlier, the error message for top level `$not` was:
"errmsg" : "unknown top level operator: $not"
Unfortunately in 5.0 it became possibly more confusing:
"unknown top level operator: $not. If you have a field name that starts with a '$' symbol, consider using $getField or $setField."
I propose we special case the error when $not is used as top level operator to instead add:
"unknown top level operator: $not. If you are trying to negate entire expression use $nor