Repalced Semaphore::Post with core::Event. Added BaseSemaphore and EventQueueSemaphore types. Made TaskProcessor a Task so TaskProcessors can be nested inside other TaskProcessors. These changes help facilitate a main thread TaskProcessor.