Use MIDIMessageQueue/IsValidWebMIDIData for MIDI byte stream validation

WebMIDI spec draft: http://www.w3.org/TR/webmidi/ 

WebMIDI API guarantees that MIDIInput::onmessage is called back with a single MIDI message. To guarantee this, this CL introduces MIDIMessageQueue class, which allows you to
- maintain fragmented MIDI message.
- Skip any invalid data sequence.
- Reorder MIDI messages so that "System Real Time Message", which can be inserted at any point of the byte stream, can be placed at the boundary of complete MIDI messages.
- (Optional) Reconstruct complete MIDI messages from data stream that is compressed with "running status".

This CL also replaces existing System Exclusive message validation logic in MIDIHost::OnSendData with MIDIHost::IsValidWebMIDIData, which can detect SysEx message even when it is concatenated with non-SysEx messages.

With this change, renderer/blink can be much simpler and free from this kind of data validation.

BUG=303599, 317355
TEST=media_unittests --gtest_filter=MIDI*, content_unittests --gtest_filter=MIDI*

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@237558 0039d316-1c4b-4281-b951-d872f2087c98
Create InputMethodConfiguration class with memory leakage bugs.

BUG=271228
TEST=Unittests with Valgrind.

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@237559 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 237558
Bring-up of the dom-distiller webui on ios.

BUG=319881

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

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