Initial implementation of Promises.all, .any, .none, and .one class methods

A `Promise.all` method was originally proposed by @gdo in Issue #80. This request was later echoed by @dinshaw when he and I met at RubyConf 2014. @dinshaw provided [spike code](https://github.com/dinshaw/promises/blob/master/lib/promise.rb#L5) with [tests](https://github.com/dinshaw/promises/blob/master/spec/promise_spec.rb#L140) indicating one possible implementation.

This PR implements four aggregating methods: `all`, `any`, `none`, and `one` that provide behavior based on the similarly-named methods in Ruby's [Ennumerable](http://ruby-doc.org/core-2.1.5/Enumerable.html) module. It generalizes that behavior in an `aggregate` method that could (potentially) be extended and enhanced.
I think your suggestion to rename the methods with a question mark makes a lot of sense. Even thought they aren't predicate methods, the semantics are much more clear:

```ruby
Concurrent::Promise.all?(promises_collection).then { do_something_useful }
```

I'll make the update.