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);
Merge pull request #9 from clintongormley/master

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