Add new shell commands and fix all routes

- app/models/role.js: add new ACL for keys and local/extern accounts
- app/models/comments.js: add allowed property
- app/api/routes/roles.js: fix permission checks
- app/api/routes/groups.js: fix permission checks
- app/api/routes/users.js: fix permission checks
- app/api/routes/pages.js: fix permission checks
- app/api/routes/posts.js: fix permission checks
- app/api/routes/comments.js: fix permission checks
- app/api/routes/keys.js: add keys API functions
- app/api/routes/localaccounts.js: add localAccounts API functions
- app/api/routes/externaccounts.js: add externAccounts API functions
- app/api.js: add keys, local and extern accounts routes
- app/api.js: add auth check middleware from auth.js
- app/api.js: add status check middleware to allow enabling/disabling API access
- app/api/auth.js: externalize auth providers into app/routes/api/auth/
- app/app.js: add callback function names
- bin/shell: add new ACL support
- bin/shell: update commands for roles/group/users management
- bin/shell: add commands for keys management
- bin/shell: add commands to enable/disable specific user and key
- bin/shell: add commands to encode a UUID key to base64 for HTTP header
- Gruntfile.js: add build task for serve target
- README.md: update doc

Signed-off-by: Boris HUISGEN <bhuisgen@hbis.fr>