add_filters is add, explicit setters removed

added tests
New roadmap in TODO
Change 'filter' to 'process'

Using 'filter' as the name of the method that applies the filters
is not intuitive enough. Change to 'process' instead.
Test for method 'add'.
New method 'clear' to clear filter selections

This method clears the list of selected (added) filters on a
filter object, resetting it to resemble a newly constructed
object.
New method 'list' for listing selected filters

This method necessicates that the object retains not only the code
of the filters, but the names as well.

An alternative implementation would be to store *only* the names,
and then to look up the code on each process() call. This would
also cause the behaviour of an object to change if the list of
registered filters changes after object creation and filling.
It is not clear which behaviour is the desired one.
'add' with an unknown filter throws an exception

Also documentation and tests.
Replaced 'use feature "unicode_strings"' et al

The pragma 'use feature "unicode_strings"', as well as the 'u'
modifiers on regexes, demand a quite recent version of Perl as
of this writing. This is not ideal, and not even required.

Instead, all text to be filtered is passed through 'utf8::upgrade'
before parsing. This also enables character string semantics, and
is a reasonable change to make.
Release version 0.02
Added repository information to Makefile.PL

See http://blogs.perl.org/users/gabor_szabo/2013/01/50-of-the-new-cpan-uploads-lack-a-repository-link.html
Changed test to use Test::Exception

This replaces the stand-in 'throws_ok' method in one test.
Also added 'Test::Exception' to the requirements for this
module.
Added two new filter propositions to TODO
Git should ignore built packages, too.
register_filters with test and removal

Calling 'register_filters' with 'undef' as the code reference
will remove the named filter.

Also adds a test, and some clarifying documentation.
Class method 'available_filters'

This lists the names of the filters registered via
'register_filters' (and the built-in ones).
Use \pP instead of \p{Punctuation}

It turns out that Perl 5.6 does not know the full name, let's see
if the short form is accepted.
New filter: 'whitespace_nl'

A variant of 'whitespace' that leaves a newline on the end, if one
was there. Useful for writing Unix-style text filters to use in
a command pipeline.
New filter: 'punctuation_sp'

A variant of the 'punctuation' filter that does not completely
remove punctuation characters, but replaces them with a space
instead. This produces text that typically has better readability,
but worse compressability. Mainly useful in the presence of
URLs, email addresses, file paths and similar strings.
Release version 0.03
More TODO: stashes are out, unicode filters in

The "stash" mechanism, along with 'rewind' and 'eof' methods,
came out of the following use case:

The 'whitespace' filter chomps all whitespace at the beginning
*and end* of a line. The line following it is treated the same.
If the lines are printed out again, there is *no* whitespace
between the last word of the first line and the first word of the
second line!

The "stash" mechanism was supposed to give filters a "state", so
'whitespace' could decide whether it had already "printed a line"
and prepend a space to the next line in this case.

This state, however, seriously violates the rule of least surprise.
Unless it's really, really needed, I'll scratch the idea. I'll
modify 'whitespace' to work statelessly with multiple lines instead.