Added [unowned self] in Executable to fix reference cycle. Executable passes tests.
Timer created to wrap NSTimer and allow Swift non-@objc implementations to receive callbacks via Timer.run(((NSTimer!) -> ())). However, the NSTimer is not being scheduled on a run loop, and it does not pass tests.
Refactored Executable notifications to Promise. Passes all tests.
Cosmetic changes.