New errors

Normalize some more browser inconsistencies with handling error cases:

- If no media types requested, trigger `NoMediaRequestedError`
- If used from non `http`/`https` source, trigger `NotSupportedError`

To consider for review, based on the latest spec: This custom `NoMediaRequestedError` is actually spec'd as `NotSupportedError`, which would mean we need a different custom error for when GUM isn't available at all.