clang --analyze cleanups for runtests

Add GCC annotations to some internal functions in runtests to help
clang --analyze better understand code correctness.  Remove a dead
store caught by clang --analyze.
Modernize POD tests

I don't want to import the full Test::RRA infrastructure from
rra-c-util, but at least borrow some ideas from it to modernize
the POD tests.
Update README to my current layout

Add a LICENSE section and separate the SUPPORT and SOURCE
REPOSITORY sections.
Explicitly note that test programs must be executable

Thanks to Justin Too for the report (via github branches).
Fix comment typo in tests/runtests.c

Reported by Justin Too (via github branch).
Add explicit license statements to all POD documentation
Switch to a copyright-format 1.0 LICENSE file
Flush harness output after each line

Flush the harness output after each test.  This effectively implements
line buffering even when standard output is not a tty and therefore
output isn't flushed after each line of test output.
Show the test count as ? when the plan is deferred

When displaying partial status of tests with a deferred plan, show the
total number of tests as ? rather than the number of tests seen so
far.  This matches the behavior of Perl's prove utility.
Free memory in libtap tmpdir test for valgrind cleanliness
Add a check-valgrind target to check memory management

This prunes a lot of the uninteresting parts of the test suite and
enables aggressive memory leak checking.
More correctly backspace over test counts when aborting

More correctly handle backspacing over the test count in several abort
cases when reporting status to a terminal.
Refactor test list handling

Build a list of all tests to run first, and then walk that list to
do the testing, freeing it afterwards.  This refactoring makes the
code easier to read, but is also in preparation for allowing multiple
tests to be passed on the command line.
Allow passing tests on the runtests command line

Passing in a list of tests now requires the -l option.  By default,
the list of tests is taken from the command line parameters.
Don't allow command-line arguments if a list was given

Add some test cases for proper display of the usage message on
various invalid combinations of flags.
Search for tests under the name given as well

runtests now tries the test name without any extension if the test
name with either -t or .t was not found.  It also does not consider a
directory to be a valid test when searching for the executable, even
if the directory is executable.
Update TODO for completed work
Release 2.0
Include more files in the distribution