Improve null-reference-accepting operators

Operators `typeof` and `delete` both accept null references, so JSHint
should not warn when their sole operand is a undefined variable, nor
should that identifier be included in the `implieds` array of the
generated report.

A runtime error will occur if the operand is an expression containing
the undefined identifier, so a warning should be issued in this case.

This patch also addresses an existing bug where property identifiers
with values "typeof" or "delete" were incorrectly interpreted as unary
operators when marking variables as unused.

Resolves gh-1881