Cleaned up gitlab_shell_spec

* Used mocks to test if methods are colled
* Increased coverage
* Removed duplication and excess verbage
Use Kernel::exec instead of system()

We don't need to keep the ruby process around once we've
established that it's ok to run a git command.
Verify GL_ID environment variable is set.

This also randomizes the key_id used in the tests.
Randomize config.repos_path in tests