Allow false in session

After https://github.com/github/rails/pull/64, session objects accessed with a symbol would no longer be able to return false due to the return logic and would return nil. This explicitly checks for a nil return instead of something falsey.

This also updates `update` to stringify keys before the update.