URL parsing logic is basically a straight port of how lbryio/lbry-sdk
parses lbry URLs. While there's a lot more going on, it should be
easier to follow what they're doing this way.
Also, added some light unit tests for the URL parsing using jest.
Which, of course, needed a babel config.
With this, tabOnUpdated was able to be rewritten more elegantly to
handle redirects as it delegates a lot of the work to utilities now.