Allow On to take a web.Handler or web.HandlerFunc, fix middleware chain