feat(privilege): add superdesk.privilege for privilege registering

SD-1069 SD-1117
refactor(privilege): move privilege handling into module

instead of having it in `superdesk/__init__.py`
import it from `superdesk.privilege`
[SD-1092] Added privileges for the endpoint.
[SD-1092] Fixing the behave test.
[SD-1092] Modified the resource privileges dict to have HTTP verb as key.
[SD-1118] Add atribute to role to indicate default role
[SD-1063] Global search returns facets
[SD-1122] Authorization with privileges
[SD-1123] Preferences end point returns active privileges
fix(privileges): use `:` instead of `.` as separator

there is a mongo error when using `.` as a separator and patching users
with `{"archive.spike": 1}`

SD-1117
feat(privileges): add privileges to user schema

SD-1091
fix(privileges): send all privileges for admin user

SD-1123
fix(privileges): raise exception for privilege with invalid name
(fix:delete roles that still have users) [SD-1118] Add atribute to role to indicate default role
[SD-1119] Adding default role to new user.
[SD-1122] Refactoring the check permissions
[SD-1119] fixing the code are merge conflict.

close #389
[SD-1122] Authorization improvements and added missing privileges
[SD-1122] Unit tests are added for the privileges
Flake8 fix