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. 
Yeah, I tried that first. The problem is that using `urlparse.urljoin()` without preceding slashes does not join the way I would expect.

    >>> urlparse.urljoin("a/b", "c")
    'a/c'

Using `os.path` this way is a little weird but it behaves exactly the way I want.