Event Processing Pipeline

This introduces a pipeline (pipeline.go) for processing events before forwarding them to the Event channel.

For now there is only one pipeline step, used to filter **create, modify, delete, rename** events. It replaces the code that was in `purgeEvents().`

There are no changes to the exported API, I kept fileName() and the event interface internal for now.

The tests pass on OS X, Linux, BSD and Windows but I haven't done other testing. I have seen some intermittent failures in `TestFsnotifySubDir` on OS X - not sure if that is unrelated?

There is still some work to enable/disable pipeline steps, and obviously implementing the [other filters](https://github.com/gophertown/fsnotify_ext).

I'd be happy to do a round of changes based on your feedback. @howeyc @samjacobson