Now throws an exception if ajax-request is not provided with a response handler.
Now correctly handles timeouts (and has a manual testing rig for same.
Now can abort running requests.