Added an interrupt handler to cleanup resources before exit. This caused me to refactor a little and cleanup resources cleanly rather than running log.Fatal in a bunch of places. Also added the todo list.