Merge remote-tracking branch 'origin/master'
Added NSQ and co files to gitignore.
Use Heartbeat middleware from gohttpware instead.

This breaks the endpoint. It is no longer /ping and is now /heartbeat.
Updated worker to use newest version of go-nsq.

API was renamed from SetHandler to AddHandler et al.
Updated Goopfile to reflect go-nsq and gohttpware.
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
Begin splitting apart QMD into two halves.

THIS COMMIT BREAKS THINGS
Renamed redis.go to be more datastore agnostic

This is part of a move from Redis to BoltDB
Split config into separate parts.

There is now a ServerConfig, WorkerConfig, LoggingConfig, and
QueueConfig.
Abstracted away Redis into generic DB type.
Added ID generator and []String flag type.
Updated Job type.

* Added kill switch for jobs
* Removed logging functionality from Job. All logging in Server.
Add Request type.
Refactored Worker.

* Logging removed. Logs pushed through NSQ.
* Worker now produces results.