Refactor away confusing UnresolvedHandlerInfo

Now there's just HandlerInfo. No awkward switch between "handler" being a string in `UnresolvedHandlerInfo` and then converting to a similar object where handler is suddenly a function and name is the string. 

Note: the test case that was rearranged was done so because the original test was hard-wired to a particular implementation. The order of the array doesn't matter; the membership of all the elements does, and that's unchanged.