Enhance Router's `hasRoute()` method to validate params via param handlers

The addition of router params in YUI 3.12.0 provided a way for extra validation of path params during a router's dispatching process. But at the time the router params feature was added, the `hasRouter()` method was not updated to follow suit.

With these changes a router's `hasRoute()` method will process param values the same way its dispatching process does. This makes it an effective way to test whether a router *will* dispatch a given URL.

**Note:** The `match()` method is left unchanged. Both the dispatching process and the `hasRoute()` method first call `match()` to get a collection of possible routes, from which they further process by checking whether each named param handler accepts or rejects a given param value.

Closes #1722
Relates #1723