Resolve "Ref's interface is inconsistent with Rugged's API"
This branch is based off !130 (merged) so tests can pass successfully, so that will need to be merged first and this rebased from master afterwards. This will give a better syntax to https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/6532
Closes #30