Allow gem client to decide when to call ensure_auth_key
Add ephemeral session cache functionality