GN: toolchain threading cleanup

Remove the thread-unsafe toolchain pointer on the otherwise-threadsafe Settings object. I replaced it with the toolchain label, and moved the is_default flag from the toolchain to the Settings object.

This required that I pass the toolchain around in a few more places, but also simplifies some other cases.

I removed the toolchain prefix from Ninja rules for the default toolchain since that's not necessary any more for GYP compat.

This fixes an annoying double-free in the toolchain manager. I think my current refactor will clean this up in a later phase.

R=scottmg@chromium.org

Review URL: https://codereview.chromium.org/51693002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@232657 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 232657
Allow multiple TtsDispatchers to respond to IPCs.

Multiple TtsDispatchers can exist in the same process; messages are
routed to the correct WebSpeechSynthesizerClient using utterance
ids. The bug was that the first TtsDispatcher was returning 'true'
from the OnControlMessageReceived message router even if it got
an IPC that wasn't intended for that client, so the second
TtsDispatcher wouldn't get a chance to see the IPC.

BUG=313855

Review URL: https://codereview.chromium.org/54173006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@232658 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 232658