Add Filter, FilterFunc, Stack, and NewHandler

Introduce a `Filter` interface, plus:

* `FilterFunc` (similar to `http.HandlerFunc`)
* `NewHandler` for composing a `Filter` with a `http.Handler` to make a new `http.Handler`
* `Stack`, which is a slice of `Filter` types that is itself a `Filter`

This should be enough to kick things off.