Adds signals.py
Adds tests for signals
Removes globals() madness

It's just not worth it.
Adds setup signals
Adds destroy signals
Adds run signals
Adds application_finishing signal
Stores the unpacker that was selected
Merge branch 'signals' into 'master'
Updates CHANGELOG