Make .last-index non-lazy

There isn't much point in approaching last-index lazily, as the .elems call
will reify any finite list completely anyway.  And it will return Inf for any
infinite list.  So instead of doing a map, we just use .at_pos to check values
and return the first one found.

Note that this changes the behavior of .last-index on infinite lists from
returning Nil to returning Inf.  I guess I'm more a "glass is half full" person.