Add features for handling values

It is very useful when writing a function that returns a promise to be able to return a value instead, in case you already have the value available. This way the caller can always treat the return value as a promise. So I've added a few "static methods" to the `RSVP` object that facilitate easier handling of already-resolved values.

### RSVP.when

This function is the static equivalent of `Promise.prototype.then`. You can pass it a promise or a value, along with the usual `done` and `fail` callbacks.

```js
RSVP.when(promise, done, fail);
RSVP.when(value, done); // Always resolves.
```

### RSVP.resolve/reject

These are convenience methods for generating an already resolved/rejected promise for a given value.

```js
RSVP.resolve(value).then(done);
RSVP.reject(value).then(null, fail);
```

### RSVP.all

I also made a slight change to `RSVP.all` which goes along with these changes. It now knows how to resolve values as well as promises.

```js
RSVP.all([ value, promise ]).then(done, fail);
```