Added then_discard() to allow the promise chain to be broken
This is useful for keeping the return stack flat while using
promises recursively.

Also added tests and Promises::Cookbook::Recursion

Fixes #10
Renamed then_discard() to finalize()
Merge pull request #11 from clintongormley/master

Added then_discard() to allow the promise chain to be broken