Discussion at dev@: http://markmail.org/message/syo3m6hrf2ix55rz
Currently  uses a volatile boolean "signedIn" to control the state.
tries to make use of it.
IMO this implementation is a bit weak. There are big windows this state to
change in the meantime.
Usually this shouldn't be a big problem, the application will authenticate
the same user twice.
But if the application does something in ISessionListener#onBind() then it
becomes a problem .