Rename ThrowName to NamedError and add a message argument, so it's usable in reject() calls.

Also add names for a few more errors.
Update the Bluetooth polyfill. TODO: split this into sensible changes.