First draft code and tests for updating environment for DB2
operations.
Use util.env_update() to set the environment before attempting DB2
operations.
Removing obsolete code
TCC report file should be open for append, not write.
Select next N object/bitfile ids rather than up to a specific object
id which may not give as many as we want in one chunk.
When we persist the Checkable at the end of check(), log the fact
along with the values of fails and last_check.

In Checkable.verify(), don't give up on timeouts unless before is
empty. If we're no longer getting anything from hsi, give up, but if
we're still getting non-error verbiage, keep waiting and expecting for
a prompt or an error.

In HSI.quit(), don't generate an exception on a timeout. Just catch
it, close the child connection, and quit.
cvtool.py:
 - Allow for running Checkable.check() interactively so it can be
   debugged easily (function test_check). Also added show_next
   function so we can easily check which HPSS file will be processed
   next (essentially, this just calls Checkable.get_list() to retrieve
   a list of entries in the checkables table ordered by last_check).

hpss.py:
 - Use the same logic in hashcreate as hashverify to persist through
   timeouts unless the before buffer is empty, indicating we're
   stalled. Log the timeouts so we can see what's going on. Append the
   last before buffer to rval in hashcreate() and hashverify().
 - Catch the error that means that an attempt to store a checksum failed.
 - In HSI.quit(), catch, log, and ignore OSErrors thrown on sendline()
   or close()
If new data root directories are added to the config, incorporate them
into the checkables list. Unit test and code added.
Fix minor error in CheckableTest.test_persist_dir_invalid, add
hpssTest to full list of tests in all script.
Merge branch 'hsitmo' into devel
Merge branch 'env_update' into devel
New tests for new start/status/stop scenarios. These tests allow for
running more than one crawler on a machine in different "contexts".
This requires that each crawler's pid file and exit file be unique. So
these will now be specifiable in the config file. The old default
values will also be honored, which means that we can start crawlers
with conflicting pid files and/or exit files.
New tests for process management in /tmp/crawler.
Track context of running crawler. To support this, moved pidfile to
/tmp/crawler (created on the fly if needed). This meant that the
application must write out the pidfile since daemon.py does not have
all the information needed. Also added tests for make_pidfile() and
running_pid().
Only define the pid directory in one place, in class CrawlDaemon.
Merge branch 'context' into devel