Improve TypeScript typings
Improve TypeScript typings

- Revert #230 and reintroduce the usage of the 'never' type
- Relax the signature of chain and chainRej to allow TypeScript to
  derive types when merging a Future of a never with a Future of a
  real type. Closes #337 and closes #370.
- Move generic types closer to where they are used in the function
  signature. Closes #372 and closes #373 through supersession.

Co-authored-by: Edgar Rodriguez <28cb2ebd86a6cb53fa71f469b6220ad24f5bddd6@gmail.com>

fluture-js/Fluture,fluture-js/Fluture,fluture-js/Fluture