It's no secret that I don't fully understand all the different builds, but this
file actually sheds some light on the distinctions. Unfortunately, the current
implementation of `detectChannel` hides these details, and allows for
specification of invalid builds such as:

```json
{
  "channel": "aurora",
  "tinderbox": "mozilla-inbound",
  "version": "17.0"
}
```

This probably shouldn't work at all, but right now (according to an
undocumented option priority) it returns a prerelease URL.

There's also a bit of a disconnect in the API and the internal module
names--internally, "channel" refers to the modules inside the `lib/channels/`
director that export a function which asynchronously resolves a URL.
Externally, though, "channel" means, "Which specific pre-release build".

Since the options are mutually exclusive, the API shouldn't support specifying
them together. We could overload the "channel" option to accept all the values
currently supported by `channel`, `tinderbox`, and `version`. I can imagine you
are cringing at the namespace pollution, but if these things really can't be
mixed, then maybe they ought to share the same namespace.