Correctly match boolean and null values

Here is the fix which correctly asserts with:

    has "key", false
    has "key", nil

Previously the above would pass a JSON with any value for the key.