Allows to build promise trees with lazy evaluated branches

- Adds #chain_delay, #then_delay, #rescue_delay which are same as #chain,
  #then, #rescue but are not evaluated automatically but only when requested
  by #value.
- Restructure class hierarchy. Only one Future with Multiple Promise
  implementations which are hidden to the user. Provides better encapsulation.
- Delay is now implemented as a Promise descendant.