Give Item a lifetime

With a lifetime on Item, the fields can now all use MaybeOwned<'a>
instead of MaybeOwned<'static>, which should allow for allocations to be
omitted in more cases.