test_limitfiles: Refactor out common test code.

This will make it easy to write integration tests, too.
Add 2014 to copyright notices.
limitfiles: Mark private methods with underscore.
limitfiles: Guard against OSErrors when unlinking.
limitfiles: Completely skip undeletable files.

When we pass a file we can't delete, try to delete another, later file
to compensate, so that we really do go all the way down to the
minimum.
limitfiles: Always delete down to the low limit.

This improves enforcement of the limit by making sure we get within it
even when the directory has many matching files above the high end of
the count.
limitfiles_common: Test may- and must-have files.

When we run integration tests, we won't have such exact timing about
when files are seen and deleted.  Our tests need to produce a passing
result as long as the code generates a result that's within the
specified parameters.  These changes specify those limits more fully.
limitfiles: Sanity test limit counts.
limitfiles: Raise ValueError for bad match regexp.
limitfiles: Raise ValueError for non-dir path.
limitfiles: Cope when files aren't deletable.
limitfiles: Add daemon and tests.