Give motivation for test function.

I'd like to settle on a standard "format" for others to follow to
comment on motivations for tests that are motivated by bug reports.  The
idea basically being to give more context in the case that the reason
for a particular unit test is not clear.
Add encoding and modelines to Python source.

Prior to this commit, the code base was strict ASCII.  However, as the
main developer, I have my editors set to UTF-8.  The only reason for the
ASCII is that we've so far had no need for non-ascii codes.  Given that
we may soon have some new committers, these mode lines may help
alleviate any potential miscommunication or editor settings.

So far, the modelines are for Vim and jEdit, as those are the editors
the current crop of developers use (e.g., me, Joe, Charlie).  Obviously,
we can add to the list as necessary.
Refactor to use a dedicated class.

From the department of DRY.  We have the code; don't reinvent the wheel.
Spaces are not allowed in technology names.
More ProcessForm unit tests.
Unit test that more than one tech is ambiguous.