WIP attempt at api wrapping

This is an attempt to make the api wrapping layer from the gitlab crate (more) generic.

See this blog post.