* Change the Promise.thenReject signature to allow matching of a
different type.
Type-checking rejections is problematic as it's equivalent to `throw`:
you don't get a value of type T in your success callback. You get
an Error (or other thrown type) in an error callback.
* Remove export as namespace
This particular file was causing me issues with the new typings-2.0 since it doesn't support exporting namespaces from within modules.
* Updating Q to have optional resolves, adding tslint file, fixing tests compilation
* forgot to merge in latest from upstream, replicated the changes into new folder structure
* adding tslint to q
* latest changes to please tslint, but is currently breaking the .all tests - still need to fix
* fixing the reason why the tests was failing, a problem with Typescript trying to decipher the signature of arrays within function arguments that are unionized, updating tslint to ignore those issues
* whoops, messed up header which failed linting
1. Q's IPromise changes to become the standard PromiseLike in order to fix
assignability in TS 2.4, which is more strict.
2. Q.all splits into more overloads in order to fix type parameter
inference in TS 2.4, which is more strict.