Fix timeouts

This is a fix for issue #142 

Basically using the polyfill function ensures that request.timedout is set to true before onreadystatechange is called (this is not guaranteed with ontimeout).
you shouldn't need any setTimeouts at all. You should be able to use sinon's clock to tick the world forward.
In that case you won't need to make this an asyncTest either, since those are generally going to end up breaking.