Flip then and done

That is to say, implement `then` in terms of `done` instead of `done` in
terms of `then`. This makes quite a bit of sense since `done` can be
less expensive since it does not need to construct an intermediate
promise.

This factoring also creates special cases to avoid unnecessary try/catch
clauses by checking for `Q.onerror` up front. Thus, this is slightly
backward incompatible. `Q.onerror` must have been set before `done` or
`then` are called for errors to be trapped.
Clarify that the progress interface is removed
Promise apply, call, bind, Q.method

These methods deprecate fapply, fcall, and fbind both on Q and on the
promise prototype. They differ only in that they accept a `thisp`
argument, in first position to be “isomorphic” with a JavaScript
function.

The `Q` function does not have reflections of the `apply`, `call`, and
`bind` methods since it has its own such methods on the
`Function.prototype`. Use `Q(function)` to use the method form.

This accompanies a change to the dispatch operator protocol. "post" has
been factored into "invoke" and "call". The "invoke" form handles named
method invocation only, and like "post" but unlike the "invoke" promise
method, accepts an array of arguments, not arguments spread out. The
"call" form handles function application and accepts an optional `thisp`
as its *second* argument. This is to emphasize that not all languages
that Q-Connection might connect to support the JavaScript eccentricity
of `this` override, but to still support it internally and between
JavaScript processes.

`Q.method` has been added. It does not do any of the partial application
or `this` binding of `bind`, but rather passes arguments and `this`
directly.

`Q.isThenable` has been removed from the public interface.

Fixes #484
Use keyword methods. ES5 only.
Scale back and upgrade Node.js bridge
Name ALL the functions

Also, remove the Handler prefix from all the handler constructors.
Changing DeferredHandler to Pending avoids the name collision.