slice: manage all ethernet destined for ff:ea:bb:ad:ab:ba
slice: change state constructor names to disambiguate

This is purely a superficial but internal change.
slice: add guard combinator to raw_app

The guard combinator handles the simple case where the user wants to
guard an app with a predicate. The following are equivalent:

  guard pred app == seq (create_static pred) app

However using guard is more efficient as it sets up fewer pipes and
employs simpler logic and control flow for propagating policy changes.
slice: add slice app combinator
slice: expose guard in public API
slice: use slice and guard to construct discovery app