Rewrite: more library-ish, new config, new flags.

* `-listen` flag replaces constant `LISTEN_INTERFACE`.
* `-target` flag replaces hardcoded values in config.go.
* Rules in config.go use a new `Matcher` and `Action` pairing, and are
  passed a `Target` from the flags.
* Most (if not all) global things such as flag definitions, `func init`,
  and constants have been replaced by local versions or passed
  arguments.

That said, I don't think this is usable as a library yet out of the box,
and should not be considered stable yet.