feat($urlMatcherFactory): Made a Params and ParamSet class

- make state.ownParams and params use Param type
fix(): populate default params in .transitionTo. closes #1396
feat($state): add state params validation Closes #1433

feat($urlMatcherFactory): add function to get a RegExp Type
fix($state): queue all state registration until runtime. closes #1435

- param Type(s) are not available until runtime because they can be injected. UrlMatcher requires Type. StateBuilder creates UrlMatchers. Therefore, states must be built JIT at runtime.
fix($urlMatcherFactory): default to parameter string coersion.

feat($urlMatcherFactory): unify params handling code for path/search
feat($urlMatcherFactory): add a defaultType that does string coersion
and supports arrays (for params)
feat($urlMatcherFactory): separate default Type(s) for path/query params

Closes #1414
- rename $$UrlMatcherFactoryProvider to $$UMFP
- move $types from UrlMatcher.prototype to $UrlMatcherFactoryProvider closure
made .when defer till runtime
Merge pull request #1443 from christopherthielen/default-type-coersion

Fixes for Typed Params