Add a syntax for some asymmetric predicate filters

This PR adds a simpler syntax for writing filters for asymmetric predicate filters like on the `filter` function.

Here are two examples:

```racket
Welcome to Racket v6.0.1.6.
-> filter
- : (All (a b)
      (case->
       (-> (-> a Any : #:+ b) (Listof a) (Listof b))
       (-> (-> a Any) (Listof a) (Listof a))))
#<procedure:filter>
-> takef
- : (All (a b)
      (case->
       (-> (Listof a) (-> a Any : #:+ b) (Listof b))
       (-> (Listof a) (-> a Any) (Listof a))))
#<procedure:takef>
```

Note that the `#:+` syntax used here is similar to the old one, but allows leaving off the `@ 0` part.

More generally, I think we should also just use the currently implemented but not printed or documented syntax for complex filters. We would also need to think about how multiple `Values` with filters should be printed.