More efficient JsonValue iteration. Fixed getter methods to actually return null.

JsonValue is a linked list! Indexed look up is expensive for large collections.

getXxx(name) never returns null, an exception is thrown if it doesn't exist. Use getXxx(name, defaultValue) if it is acceptable for the named value to not exist. I prefer getXxx(name) but since you guys had all the exceptions with their nice messages, I just added null default values.