Fixed issues around empty paths, and also made sure paths are never relative

Thanks @ashimshahi for pointing them out
Added a few extra cases of the same mis-assumption

(extending pull request #32)
Extra test case for empty paths
Major oops, the equality for source location was a bit broken.

|tmp:///| would be equal to everything that also started
with |tmp://| ... not the other way around..
Merge pull request #32 from DavyLandman/master

Fixed issues around empty paths, and relative paths