Display cursors of connected users

Add the possibility to display cursors of all connected users.
The cursor position or the selection zone is displayed in the editor and all connected users are listed with their name, current file and current line.
New entity based permission layer

The role and permission model is made more flexible allowing for
fine-grained permission checks compared to the current model.

This is also an opportunity to change the way data are stored in the
database.
\BlueLaTeX aims to be really modular on the server-side but this
modularity is not achieved if data is not as modular as code. The
entity-component system allows for adding and deleting responsibilities
to entities in a modular and dynamic way, hence seems to be a good way
to go for the future.

I am aware this commit introduces breaking changes but, that's the
moment to do it, \BlueLaTeX is not released yet so let's break things
now.

Concretely the new role and permission model introduces following
concepts:
 - Group of users,
 - Phase defining permission for each role,
 - Refined permissions for papers.

To prepare for the near future, the paper document in database is also
simplified to its essence. Branching related stuffs will come back later
when this feature is introduced into \BlueLaTeX.

Roles and permissions are components that are attached to the paper
entity without any need for modifying the entity document.

Having introduced this, we can now improve all other entities such as
paper data and user data.
Merge pull request #86 from tdurieux/multi-cursors

Display cursors of connected users
Make users and papers entities with components

The core and compiler bundles bring their own data in a modular way.
Users and papers are just entities, with no other meaning than just
existing.

core bundle brings:
 - user basic data (first name, last name, email address, ...),
 - paper basic data (title, last modification),
 - paper roles (authors, reviewers, ...)

compile bundle brings:
 - paper LaTeX compiler settings
Update test scenarios

Make test scenarios take into account that data are now stored using an
entity-component system.
Merge pull request #84 from satabin/wip-entity-components

This merge introduces some compilation warnings which will be removed when updating to scala 2.11.
[imp #88] Add paper name to identify it

When a user creates a paper, he must give a name that is used in paper
list for further reference to it.

Using a name that is not the title extracted from the source is better
for several reasons:
 - Using a simple regular expression to extract the title from the
   source file is not a really robust method,
 - Source title may contain control sequences that are not really user
   friendly to display,
 - Several papers may have similar titles which will make it more
   difficult to distinguish between them.

For all these reasons we found it preferable to ask for a name that the
user can freely chose and edit.
Merge pull request #89 from satabin/wip-paper-name

[imp #88] Add paper name to identify it