Session = function(sid, frontendId, socket, service) {
  EventEmitter.call(this);
  this.id = sid;          // r
  this.frontendId = frontendId; // r
  this.uid = null;        // r
  this.settings = {};

  // private
  this.__socket__ = socket;
  this.__sessionService__ = service;
  this.__state__ = ST_INITED;
}
Session maintains the relationship between client connection and user information.
There is a session associated with each client connection. And it should bind to a
user id after the client passes the identification.

Session is created in frontend server and should not be accessed in handler.
There is a proxy class called BackendSession in backend servers and FrontendSession 
in frontend servers.