Switch to daemon threads to avoid waiting for thread timeout.

Prior to this change the JVM would wait for the threads to time out before it would exit. By switching to daemon threads it can trigger shutdown immediately, but in order to not discard any in-flight request we give the pool 120 seconds to finish any current jobs.

Closes #598 

@swankjesse