Template based job creation

Adds capability of creating new projects for repositories with no job, using an existing Jenkins job as template, either using a single template for all unknown repositories or based on the repository name or group.

Although it doesn't merge automatically, I've cherry-picked the commits producing the conflicts and solved remaining ones, so it is safe to merge manually accepting changes from my branch (using -Xtheirs).

The only test I've not been able to fix is

    spec/values/project_spec.rb:113 # GitlabWebHook::Project when determining if matches repository url and branch when parametrized does not match when branch parameter is not of supported type

which produces a "only string parameters for branch parameter are supported" warning instead of the expected exception.
I think you are confusing the branch name (where `**` applies and have sense), and the refspec, which controls which remote branches are get. The default refspec is `'+refs/heads/*:refs/remotes/origin/*'`, and that is probably perfect for most cases, but you might want to get only the remote master and set it to `refs/heads/master:refs/remotes/origin/master`. And if you use git notes on your jenkins projects, you must explicitly _download_ them by adding `+refs/notes/*:refs/notes/*`