Web MIDI: shows right DOMError on resolving requestMIDIAccess()

The spec requires to return a right DOMError on resolving the promise.
E.g., NotSupportedError for platforms that do not provide MIDI backends,
and InvalidStateError for internal initialization errors.

This change introduces an interface for sending back error information
details from a platform dependent backend to blink.

The old interface, didStartSession(bool) will be removed soon once Chromium
gets to use the new interface,
didStartSession(bool, const blink::WebString&, const blink::WebString&).

BUG=n/a
TEST=LayoutTests/webmidi

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

git-svn-id: svn://svn.chromium.org/blink/trunk@173307 bbb929c8-8fbe-4397-9dbb-9b2b20218538