Fix errors from GitLab requests leaking request/response details
Fix errors from GitLab requests leaking request/response details

This commit stops credentials e.g. personal access tokens being leaked
by the GitLab service class when an error is thrown. This is due to the
underlying request errors exposing too many details, particularly from
`request-promise`.

To solve this, we just re-wrap errors with a new `ApiError` class which
only exposes minimal details.

eduardoboucas/jekyll-discuss,eduardoboucas/jekyll-discuss,eduardoboucas/jekyll-discuss