Custom request object is used as an abstraction instead of HttpServletRequest. Closes #40

Burn in hell ```HttpServletRequest```, you won't be missed.