Add slice and guard app combinators

This pull request adds the slice and guard combinators to the `Async_NetKAT` public api. These are mostly for convenience as they are equivalent to previously-existing combinators. For example:

```
guard pred app == seq (create_static (Filter pred)) app
```
and
```
slice pred app1 app2 == union (guard pred app1) (guard (Neg pred) app2)
```