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.
Add support for registering routes by regex

Changes to NativeFunctionAdapter and FunctionManager to support
registering function with regex routes. Changes do not alter existing
functionality, just lay ground work for future lookup.

NativeFunctionAdapter objects now have optional constructor arguments of
route and action (actions are HTTP actions). If not specified, route is
set to ^function.name$ and action is set to all actions. So default
action should match current implementation.

FixedFunctionManager is altered to have an alternate storage of routes
in an ordered list. This means that the order of registration matters,
and the first match will be run.
Register a regex for route and name

This will allow lookup by either the route, or by the function name to
support SOAP or REST lookup style.
Swtich to regex route based function search

Switch to get_one using routing table to find function instead of
function dictionary. Exact same functionality for regular function
calls. Still can't do full path based routing because arguments in the
URI, and the HTTP action are not know.

Removed previous data structures.
Put request method into Request object

Optionally store request method in the pyws.Request object. Adjust
adapters so that this is passed.
Show METHOD in Request stringify

Also store METHOD in Request Object
Pass request method through to function manager

Modify Server and FunctionManager to support passing a requests METHOD
through to aid in function selection.
SOAP Fixes

Change add_function to always register simple function name routes for
GET and POST so that SOAP finds them. They are lower in the list the
user defined routes for REST, so they won't be called.
Change get_all to use the new data structures to return a unique list of
all functions.
Pass Function object to get_arguements

Pass the full Function object to get_arguments instead of just the args.
This way we have more details (like route) to use in extracting
arguments. No functional change.
Use route regex to extract paramters from path

Extract parameters from URI. Precendence is: Named groups, positional
groups, then query string. Named groups in the route regex is the much
prefered style.

JSON protocol is updated so that it can also use path paramters, but
adds the possibility of useing JSON in the request.text.
Compile route regex once on function register
rest get_arguments cleanup

Clean up logic of get_arguments to avoid using exceptios to drive logic.
Should now be clear which variable locations have precedent
spencer gitignore change
New REST style examples

A client and server pair to demonstrate routing style