Use friendly repo names when possible

Uses a friendly repo name `project_name/repo_name` when possible (_should_ always be possible unless the Stash api url structure changes).

This PR also contains refactoring of some messy test code.