Add silent mode to urlState

It is sometimes convenient to be able to set properties on urlState and
listen to stateChangeStream to redraw the UI.

Previously, this was not possible, because stateChangeStream would only
emit values upon page initialization or when a browser action triggers a
history change (Back/Forward).

This change will make it so that stateChangeStream will *always* emit
a value when properties are set on urlState, unless the silent flag is
set to true.
Move urlState setter to function
Centralize all urlState setters
Clarify how silent mode works
Merge pull request #1740 from kdeloach/topic/urlstate-deluxe

Add silent mode to urlState