Speedup path lookup by avoid object allocation
Speedup path lookup by avoid object allocation

`Request#resource` relies on `URI#full_path` to combine both `path`
and `query` elements of the parsed URI in order to construct another
string.

By doing that, a few temporary strings are allocated, adding elements
for the GC to collect.

That combined with the Regex introduces a slowdown in the lookup, not
to mention the call to PCRE (C land).

`URI` already provides `path` clean from query parameters and that is
exposed as part of the request as `path`.

You can see the performance differences on the following benchmark:

https://gist.github.com/luislavena/2bbb6befb8c0dd5ea3c7a628aba3d39d

Results:

                 URI#path: 423.36M (  2.36ns) (± 1.61%)        fastest
    URI#full_path + Regex:   3.44M ( 290.8ns) (± 0.51%) 123.11× slower

tbrand/route.cr