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).
This test file is massive. Since this only touches xhr(), it would be nice if we kept it separate.