Add apply method to Endpoint companion

This allows for endpoint to be created with slightly prettier syntax.

Addresses #88
I don't really like the underscore in the param name. Why can't we use just `route` there? I believe it should work.