Significantly improved async API.

Fixes #52 (hopefully to people's satisfaction!)

WARNING: Breaks existing code that relies on async behaviour.
Bumped minor version to 0.3 to lessen impact on existing code.

WARNING: Breaks existing code that relies on async behaviour.