Improve parsing of Jackson JsonNodes

Handles #2902, and also changes the Java BodyParser to parse from the tree instead of re-parsing the JSON as a string.