Add lazy promise
Add test for factory throwing an exception
Add tests for When::lazy
Add When::lazy() to readme and changelog
Merge remote-tracking branch 'origin/lazy-promise'

* origin/lazy-promise:
  Add When::lazy() to readme and changelog
  Add tests for When::lazy
  Add test for factory throwing an exception
  Add lazy promise
Prepare v1.0.4 release