Continue to process AnalyserNode if inputs are silent.

If the input to an AnalyserNode is not connected or it is silent
(because of the silent hint), we must still process the node so that
the internal state is updated with the silent input.

This requires several things to be changed:

1. propagatesSilence() must return false so that
   AnalyserNode::process() is called even if the input is silent.
2. Can't disable output of an AnalyserNode when the input
   disconnects.  If the output were disabled, the node would not get
   called to process any more.
3. If the input is disconnected and the output is not connected, we
   cannot remove the node from the automatic pull list because then
   process() stops getting called.

Basically, process() must always get called as long as the AnalyserNode
is alive.

BUG=683188
TEST=Analyser/handle-silent-inputs.html

Review-Url: https://codereview.chromium.org/2666063003
Cr-Commit-Position: refs/heads/master@{#449379}
6 files changed