Use Jeanine Adkisson-style variants

Service endpoints return two-element vectors of a `type` and a `value`. The timeout value on deref of the service promise is also a vector like that. Handling those values is done with core.match.