Changed Filter to an interface.  Added FilterFunc that allows a
standalone function to implement the Filter interface. This will allow easy
construction of filters whose public API contains some state.
made Xargs return a custom Filter so that it can support LimitArgs
simplified error test
moved xargs to its own file