Enable non-object JSON bodies

Updated JSON requests so they can contain bodies that are not objects. For avoid unexpected surprises, JSON `null` values are not sent.
Reverted null body behavior
More JSON request tests

Added test to ensure each type of JSON root object can be sent in a request
Updated test to verify JSON responses
Modifying JSON request test

Modified JSON request tests so the same value sent in the request
is echoed in the test server JSON response.