Fixed signals to respond immediately instead of waiting for timeout.

Streams that are blocking are unable to interpret signals until a timeout occurs. When working on a connection with a higher timeout or using heartbeats to keep the connection alive, signals will not work. 

Workarounds have been mentioned which set a timeout and loop every x seconds to do a check but this is inefficient for the cpu. Using stream_select with a value of null is the easiest on resources while waiting for input. The only way that input will be caught is if the stream is not blocking.

Fixes #165
Fixes #192