feat($urlMatcherFactory): implement type support
fix($urlMatcherFactory): syntax
chore($urlMatcherFactory): clean up test defs
feat($urlMatcherFactory): date type support
feat($state): allow parameters to pass unharmed

[BREAK] This is a breaking change: state parameters are no longer automatically coerced to strings, and unspecified parameter values are now set to undefined rather than null.
feat($urlMatcherFactory): fail on bad parameters
feat($urlRouter): force URLs to have valid params
chore($state): validate rejection of bad params
feat(UrlMatcher): add per-param config support

Implements optional parameters and default parameter values. [BC-BREAK]: the `params` option in state configurations must now be an object keyed by parameter name.
test(uiSref): remove unused dependencies
feat($urlRouter): defer URL change interception

$urlRouter's listener can now be made to take lower priority than custom listeners by calling `$urlRouterProvider.deferIntercept()` to detach the listener, and `$urlRouter.listen()` to reattach it.
style(UrlMatcher): semantic and formatting fixes
feat(UrlMatcher): implement non-strict matching

Implements strict (and non-strict) matching, for configuring whether UrlMatchers should treat URLs with and without trailing slashes identically.
feat(UrlMatcher): validates whole interface

urlMatcherFactoryProvider.isMatcher() now validates the entire UrlMatcher interface.
test($urlRouter): update to UrlMatcher interface
refactor($route): remove ngRoute compat layer
doc($urlRouter): document href() method
perf($urlRouter): only call $location.port() once
feat(UrlMatcher): allow shorthand definitions

When defining parameter configurations, `{ param: "default" }` is now equivalent to `{ param: { value: "default" }}`.
feat(UrlMatcher): default values & type decoding for query params