fix(routing): URL-decodes path segments like Elgg 1.8

Non-ASCII characters get URL encoded in $_SERVER['PATH_INFO'] so instead we
copy the URL path into a query string var and use that var to build path
segments in the router. This should yield identical behavior as Elgg 1.8.

Fixes #6218
fix(http): makes HTTP request/parameter bag PHP 5.2 compatible

The original Symfony versions use array_replace. We use array_merge, which
is identical for the purpose it's used.
test(routing): adds more comprehensive tests for router

This tests that the router passes the URL segments and original
identifier to the page handler, and that a URL-encoded segment
is properly decoded.
Merge pull request #6439 from mrclay/6218

fix(routing): URL-decodes path segments like Elgg 1.8