fix($urlMatcherFactory): typed params in search

- Improved code structure for default parameter Type
- Added and Search-Query type supporting arrays of typed params in the query-string
- Consolidated path/query param codepath in UrlMatcher.format
- Allow squashing default query params.
- Cleaned up built-in param Types
- Add toString to Type and Param
- Add `name` to Type when registered
- Fix typo in ParamSet.$$equals Closes #1488

chore(lint): linted
docs($state): Documented new params configuration:

  - value, squash, type

docs($state): improved docs for $state.state

docs($state): update to ngdocs 0.2.6.  Add parameter property table for stateConfig.

docs(site): made docs .fluid and wide
fix($urlMatcherFactory): allow arrays in both path and query params

- Connected Type.$$array with options.$$array.
- Add $$array: true where values are always mapped to arrays (even if only one value found)
- If a query param ends with [], it is considered $$array=true, else $$array='auto'
- Encode array path-parameters using dashes