Isolate core interfaces in a `core` module.

Unfiltered's binding modules (`filter`, `netty`...)  do not and
generally should not use the request/response building functionality
of the `library` module (artifact id is "unfiltered"). We can
formalize this distinction by pulling the interfaces they do use into
a new `core` module.

This is a dependency-breaking change for anyone relying on the
transitive dependency of binding modules on `library`. It's simple to
fix by adding a dependency on the artifact id `unfiltered`, but we
should be loud about this at release time to minimize suffering.