When.java - ported map() functionality
When.java - ported some() functionality
When.java - ported any() functionality
When.java - ported chain() functionality
When.java - ported all() functionality
When.java - ported join() functionality
PromiseTest.java - ported standard Promise interface unit tests (excluded always/otherwise/yield/spread)
RejectTest.java - ported reject unit tests
ResolveTest.java - ported resolve unit tests
Merge branch 'feature/promise' into develop
WhenTest.java - ported when unit tests
When.java - ported reduce() functionality
When.java - change static methods to instance methods, they were just confusing things.
Resolver - overloaded reject() to accept a TResolve reason.
Promise.java - now extends the Thenable interface and provides then() overloads with fewer callbacks.
DeferTest.java - added unit test missed in initial port
When.java - added overloads to map() and some() without all the callbacks.
When.java - modified some() functionality to behave the same as when.js when a null list is passed.
When.java - added overloads to any() without all the callbacks
When.java - added overloads to all() without all the callbacks