Revised error handling for MediaConstraintsImpl

The new error handling allows information to be passed back that
can either be returned as an exception or be returned as an error object.
Some errors (NavigatorUserMediaError) can only be returned as an error object.

Adds a lot more constraints.

Keeping the by-name accessors and the by-name access.
This allows old code to function.

Using struct in WebMediaConstraints for named constraints.

BUG=543997

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

Cr-Commit-Position: refs/heads/master@{#369453}
16 files changed