[REF] First step, use the same vocabulary for the cr, uid, res_type and res_id
=> Session, Record.
* a Session is a container of one cursor and one user 
* a Record is a container for the res_type and res_id, in this object, the right
  names are model and id.

Examples:

session = Session(cr, uid)
record = Record(res_type, res_id)
record.mode, record.id

A new class named 'WorkflowService' is a wrapper for the instance.* functions.
[REF] Remove old code from the workflow engine
[REF] Remove the useless wkf_expr.py file and copy it into workitem.py
[REF] Create a WorkflowItem object
[REF] Start to abstract the Workflow engine
[REF] Use the contextlib.closing function instead of a couple of try/catch for
the release of the database cursor.
[REF] Merge a refactoring of the workflow (lp:~openerp-dev/openobject-server/trunk-refactor-workflow-stw)
[FIX] On OSX, the system has a lot of Bitmap fonts, and in this case, Reportlab
can not load the 'head' table from the structure of the TTF file. There is no
good way to check if a TTF file is an old style or new style.
[FIX] Add the default shell