proposed fix for 669

Adds ability to pass multiple values to resolve, and to a new class method called values.

Consistently passes on the multiple values 1:1 to the receiving block.

Code like this will be no longer work:

```ruby
Promise.when(p1, p2, p3) { |vals| ... vals will currently be an array, but will now have the first value ... }
````
Test suites have been updated, and pass