Treat timeout differently than abort. Also added a string message to the...

... timeout response.

Wanted to treat timeouts differently to aborts (which is exposed by the library). A timed out request aborts the request and also send a message back to the caller (like in jQuery ajax). This way its a bit easier to determine that a timeout has occurred. Instead of just checking the status === 0 (which is the same for manually aborted requests), we can also check the response message to make sure that the request has timed out.