Make it Middleware!

For your consideration. Definitely a breaking change as it removes the routing capability, but imo, it's a lot cleaner to have it in the middleware as a rack app.

Will require some doc updates, but I'll submit after this gets feedback.

Based on #42