Return new-shape results in servlet

The code is much more robust as a consequence: we are guaranteed to raise an
IOException only in the event of a _real_ problem -- in which case we return
500.
Use Jetty's builtin servlet API

It supports generics, unlike servlet-api 2.5. I have trouble apprehending the
landscape there :(