API: tests to show incorrect behavior when reaching project limit

When reaching the project limit the API returns an error code 404 on the last possible
project. The project itself is created and is available in the database (seems valid).
A similar behavior can be observed when reaching the project limit via web client, but
in this case the user is notified that the maximum number of projects is reached. The project
itself is still created and can be accessed.

Tests are added to check the behavior when reaching the project limit or one tries
to exceed it via the API.
API: fixes return code when creating last project before reaching limit

When creating the last project via API when reaching the project limit a status code
of 404 (Not found) is returned instead of 201 (Created). The fix checks now correctly if
the project could be saved.
API: refactored last fix, project limit in web client is fixed too

The previous call `saved?` is restored in the `POST /projects` method in the API.
It is refactored to check if the record is persisted. This is useful to not validate
the record again after saving. This fixes the returned status code in the web client
too. If the last project is created via web client instead of error notification
the project page is shown.
API: fixes visibility of project hook

When a user is not authorized to see the list of hooks for a project, he is
still able to access the hooks separately. For example if access to
`GET /projects/:id/hooks` fails and returns a `403 Unauthorized` error it is
still possible to access a hook directly via `GET /projects/:id/hooks/:hook_id`.

Fixes access, also added tests to check access and status codes of hooks.
Add commit full time tooltip to `commited_ago`
Update seeds for state columns
Update doc/install/installation.md

changed installation overview list step #4
Gitolite -> GitLab shell
API docs: fix new milestone parameters
Merge pull request #3043 from sjmulder/state-seed

Update seeds for state columns
Merge pull request #3045 from eldios/patch-1

Update doc/install/installation.md
Merge pull request #3038 from dmedvinsky/commit-time

Add commit full time tooltip to `commited_ago`
Merge pull request #3011 from Asquera/fix_access_to_nonvisible_hook

API: fixes visibility of project hook
Merge pull request #2988 from Asquera/error_project_limit

API: creating last project before limit returns 404
Introduce trusted omniauth

Trusted auth is implementation to group all different strong or trusted authentication methods under same code and policy.

Trusted authentications for now are ldap, pam, cas(?) and shibboleth(?). From these ldap and pam works similarly. They ask username and password for authentication. So to implement shibboleth, some modifications are required.
Move ldap specifics to trusted omniauth interface