Pickle openid session in cookie sessions (fixes #469)

The openid library stores some objects in the session which aren't JSON
serializable. As the cookie session backend uses JSON (and not pickle,
which beaker does), this doesn't work.

This commit fixes this issue by storing the openid session itself
pickled within the main session object.