Allow wrap-rpc to pass request to defremote

Chas;
This adds optional support for passing request information to remotes and modifying session information. It's back compatible with the previous usage, except that `remote-uri` now needs to be passed to `wrap-rpc` as a keyword argument.

This lets you write remotes that use and modify session data, or need other information from requests. If you think another approach to doing this would be cleaner, I'm happy to work it up differently.

Thanks for making this available.