1079511 - better relative url collision prevention

[BZ-1153295](https://bugzilla.redhat.com/show_bug.cgi?id=1153795)
[BZ-1079511](https://bugzilla.redhat.com/show_bug.cgi?id=1079511)

Repos should not be able to have the same relative url or race conditions will exist. The logic to prevent them was already in the code, but assumed that the relative urls would have a preceding slash. It seems that most of the time, including in our examples, we do not include the preceding slash. In order to maintain backwards compatibility, we have to support both while also preventing collisions between them.

I may have gone a little overboard on the tests, but there are enough weird edge cases that a little redundancy in the tests is better than a missed edge case. 
That sounds reasonable to me. It may act weird on platforms where `os.join()` operates differently but I don't think that is a concern currently.