provide user data storage on request interface

expand Request interface to provide 3 new methods:

- SetUserData
- GetUserData
- DeleteUserData

intended to allow middleware to store/fetch/delete arbitrary data on the request, but
other phases are free to do so as well
Merge pull request #52 from davidbirdsong/userdata

Allow users to embed data a Request
Trie based router with expression support
Merge pull request #60 from mailgun/sasha/exproute2

Trie based router with expression support
Simplify and cleanup
Initial commits highlighting the limits