Allow for functions with no parameters in JSON protocol

Previously, a function call with no paramters would fail (BadRequest
exception) if there was no request body, an empty JSON object "{}" had
to be passed for successful exection.

No a function which does not require paramters can be called with no
request body.
gitignore, just for spencer's use to ignore testing file
Clarify setting of default settings when none passed
Clarification of get_protocol

Small refactoring of get_protocol to make logic a bit clearer. Not
functional change.
Put request method in Request Object

Changes to request object and adapterrs to allow storing the request
http request method. (GET,POST,PUT,DELETE)