Add tags support

Went with a simpler design than originally planned.

We might could if performance ever turns out insufficient,
but my thinking here is that if a pipeline needs higher perf,
it'd be better to create a dedicated listener and avoid
using tags altogether.

Closes #32.