Allow then() to execute in the context of the event loop.

The native Promises::Deferred implementation can result in deep
recursion when there are many chained then() callbacks.
Instead, each callback can be executed in the event loop context,
avoiding deep recursion.

This commit adds an implementation for AnyEvent and can be used as:

    use Promises backend => ['AE'], qw(deferred collect);

First attempt at fixing #8