Continued work to move loop events to separate objects.

Created interfaces for all loop events, chaning method signatures in LoopInterface to look for interfaces (such as PollInterface). Cleaned up old Timer and Immediate objects. Moved implementation classes of promises into separate folder (Structures).