Added AsyncIO support.

This adds AsyncIO support as requested in issue #52.

This is my first time really fiddling with event loops, but it passes the test suite and the tutorial examples seem to run fine on it, so I hope it will work fine :)

However, there is one caveat. It fails one test in the suite, but not from a semantic standpoint. The loop does raise ZeroDivisionError, but AssertRaises doesn't recognize it for some reason. It thinks its some other exception (even though Python returns True for isinstance(err, ZeroDivisionError) when I check). Any ideas on how to resolve this are welcome. :)