[FEATURE query-params-new] Hopefully final iteration

- default value'd QPs no longer show up in URL
- default value's type is used to determine how
  deserialized QPs are cast into controller prop values
- added queryParams Route config hash with properties
  `replace` and `refreshModel` to configure changed
  QP property behavior
- better code organization

/w @raytiley's help
Merge pull request #4468 from machty/query-params-v3

[FEATURE query-params-new] Hopefully final iteration