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.
I'll revise this comment. I'm trying to point out that `newState[key] = value` and `_state[key] = value` will result in both state objects containing the same information, therefore no data will be pushed to `_stateChangeBus`.