Refactor json nulls

We're repeatedly doing a bit of a antipattern when using value from `JSONObject`s:

```java
if (value != null || value.equals(null)) {
...
}
```
Generally in Java this is a bad plan, and can lead to NullPointerExceptions, and the linter tool in Android Studio rightfully points this out as a possible bug.

This PR changes all existing code to handle these odd null values in a more explicit way, using:

```java
if (!JSONObject.NULL.equals(value)) {
...
}
```
which should behave the same as the above example, while also documenting *why* we're not doing a normal `value != null` check.