Roles and adminitrative user

Changes included:
* User now will accept a list of roles instead of a single role
* User now has user_type field: only  "user" and "administrator" is used for milestone1
* check_permissions throw 403 if no permissions
* Other details are on : https://wiki.sourcefabric.org/display/NR/Milestone+1+-+Implementation+details

Yes, we need to document this. If we use `app.data` directly, the events on the service are not raised so some bugs might occur.