feat($urlRouter): abstract $location handling

 - Wrap all handling of $location and UrlMatchers and abstract away from $state
 - Expose URL-syncing interfaces
 - Refactor and simplify URL generation
chore($urlRouter): whitespace & formatting
chore($urlRouter): add tests for location syncing
refactor($state): simplify include()
fix($state): sanity-check state lookups

 - Fixes #980
chore(readme): added sample link
docs(readme): fix broken link to states
Merge pull request #996 from mrngoitall/master

docs(readme): fix broken link to states
Changes to top menu and resources

Originally refactored first menu to add FAQ, then got carried away
Added video section to resources
Merge pull request #1009 from jhr007/patch-1

Changes to top menu and resources
chore(changelog): update the changelog
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.