Save exceptions to redis and add better error handling to retrieve the gem specification

Easy debugging for developers

- Allow you to save the exception to a redis list with `push_exception`, you have to manually use it in your rescue block. I'll check with lita authors to see if we can add a cleaner way to catch all the exceptions.
- The exception queue is limited to 20 items.
- You can `pop` the exception from the queue with the command `why computers so bad?`

Fixes #3
Can we have push_exception take 2 arguments?

`def push_exception(exception, context={})`

This would let us kind of log the exception as well as any other context (inputs) that may have lead to the failure. Should help with easily eyeballing what work was being done that failed.