Adding #ready

Also removing foreach since it is similar to onSuccess and the naming is
less clear.
Removing #andThen

The result in JavaScript is basically the same as map
Removing #collect

Since partial functions don't make sense in JavaScript, this is also
being removed
Removing #mapTo

Map to does not make sense with dynamically typed languages
Adding #filter
Removing #flatMap

The Promises/A+ Spec actually handles this case