resolves #1300: passing 0 to timeout() will disable timeouts

After 5dad9a3, it seems `this.timeout(0)` stopped working.  

I re-enabled it inasmuch as I understood how it works, and added a test.

I was unsure whether or @travisjeffery had intended to change the API, so that's why
this is a PR.