protect against undef string comparison

Due to checking for relative URI schemes (represented by undef), I am getting uninitialized string comparison warnings in my app. Perl6::Junction does not have warnings enabled, and as a result, testing on the command line does not produce any warnings.

The problem is here:

```perl
if none( @{ $self->get_uri_schemes } ) eq $uri->scheme;
```

where either side of the expression can cause an undef comparison.

My fix adds a few more lines, but I have also provided thorough tests. Please let me know what you think.