Manually control message responding.

This allows us to use the TOUCH signal to tell NSQD that we are still
handling the Job and not to requeue it. It also lets us notify NSQD when
a Job should be requeud.
Fixed concurrency issue for jobs.
Fixed timing issue with the TOUCH response
Left closing of goroutines to defer.
Removed SIGHUP from graceful shutdown signals.

The inclusion of SIGHUP was causing QMD to shutdown whenever a pipe was
broken. For example when deployed in production and a computer was left
tailing nohup.out. If the person with the computer left for lunch
without exiting the session and the computer went to sleep. This would
send a hangup call to QMD when the pipe broke.
Add unique name for workers
Renamed examples dir to be unimportable
Separated server and worker into different dirs.

THIS COMMIT BREAKS EVERYTHING.