Ref #41: Separate scrolling and highlighting
Ref #41: adapt holiday edition to new api
Fix #41: Only highlight elements on edit/delete

When an element is newly created, a 'new_element' tag is passed to the
model.
This new_element is handled when the collectionview appends the
associated html element. If this attribute is present in the itemview's
model, we ask for highlight + scrolling, else, we only highlight.

On deletion, no scroll option is passed.
Upgrade some js libraries and clean a bit the js code

We upgrade :
backbone
backbone-marionnette
underscore

That are the mvc libraries we use in the part of autonomie were coded
OPA style UIs:
* expense configuration
* holiday configuration
Moving from hogan to handlebars

In order to be able to get some logic in our js templates, we switch
from hogan (that is a pure mustache lib) to handlebars.
Add a custom column type storing a dict as json

Here we implement a typical custom sqlalchemy column type.
We also bind a mutable on to it that handles the detection of
modifications (and force sqlalchemy to fire sql queries).
Add session_datas to the user object

The session_datas attribute is a json dict that will be used further on
to store the user's preferences.
Ref #40 : Forms now listen to their models change

Implementing favorites (bookmarks), we need to alter the form's model on
the fly, here we force the form to re-render itself if the model
changes. Backbone validation is now bound to the form view each time
submission is fired (rendering disabled previous bindings).

We also add minor fixes on add form submission (we check validation
before adding :) ).
Templates are now handlebars'
Ref #40 : Modify templates for favorites handling
Ref #40 : add bookmark handling tools and views

In order to handle bookmarks, we provide a rest api.
A BookMarkHandler object is in charge of handling the bookmarks dict and
submitting it to the database.
Ref #40 : provide a 'edit_rights' arg for rest views

add_rest_views is a tool to generate four rest views :
* get
* add
* edit
* delete

it adds the views (routes should exists).
By default, edit views (edit, delete) need 'edit' rights.
In case of bookmarks, the limitation of the access to the user's
session_datas is directly ensured by the current authentification, this
way, no acl is needed (the user should only have view access => be
authenticated).
Ref #40 : Provide bookmark colander Schema

To validate the bookmarks and ensure we don't store stupid datas in our
session_datas, we use a colander schema provided by this commit.
Ref #40 : client code for bookmark handling

Bookmarks are stored in MyApp.bookmarks, as a collection. This
collection is edited (and it syncs) in the expense UI.

This commit also updates the view's templates (we now use handlebar).
Merge branch 'gaston/#40'

Fix #40 : handle favorites in the expense page
Pass all the layout to fluid
Switch user holidays page to handlebars