serve files in or below the directory of argv[0]

Replaces the original functionality of
CGIHTTPServer.CGIHTTPRequestHandler that required all and only
executable scripts to be in ./cgi-bin.  With the changed functionality,
the directory tree can be arbitrarily deep, and all and only *.py files
are executed (others are assumed to be of content-type text/html).
2nd try, having messed up in git.
get file extension even if url has a query
re-use is_python(); don't duplicate its logic
improve comments

I had hopes of relying on existing processing, but someone decided that
self.path should mean different things at different times.  It takes all
kinds.
call non-class method from CGIHTTPServer.py

Use Python syntax to eliminate a copy of
CGIHTTPServer._url_collapse_path_split  that I erroneously made.
improve comments

This aims to be the end of the branch that interprets a file as a Python
script if its name has a ".py" extension, rather than requiring that the
file be housed in a cgi-bin directory.
revise tests to eliminate cgi-bin, html-stuff
improve comments and error messages
last commit before massive changes

This version doesn't work (for example, it improperly calls a private
method of the parent class, _url_collapse_path_split), which doesn't
even exist in Python 2.7.5.  I'm committing it as a potential restore
point in case I *really* blow it in subsequent steps, as I aim to...
o  implement only the Stuy/Adobe setup
o  guess that Adobe identifies a cgi script by the first element of the
slash-separated url that ends with “.py”
o  mimic Adobe’s ability to handle extra-path, since it’s easy given the
other changes
o  maintain the methods defined in CGIHTTPHandler, in case someone wants
to expand the capabilities in the future.
interim commit, just for backup
big changes.  Runs .py in any dir!  issues remain
main changes work on Windows

This commit is aimed at testing on Mac OS X
from Mac, chmod +x tests/*.py
improve error msgs.  Ready for Mac testing