Moved all code into sub directory project

    All code will be sub-directories from there.
Add First Version of Reactor code.
Added a Threaded implementation of ReactorEventHandler

    WorkQueue:  Is a basic thread pool
                It implements the interface ReactorEventHandler
                which removes the SourceHandler from the reactor and adds it to a job queue.
                When a worker thread is free it will pick jobs from the job queue eventually
                execute the SourceHandler. If it works it will be re-added to the reactor.
Added Unit-Tests for Reactor.cpp

    Needed to Modify erase() in PtrMap.
    An erase of an element that does not exist is not an error.
Update internal usage.

    Only call the handler function for events that it is interested in.
Added unit test for select interface
Add EPoll unit tests
Use std::runtime_error
When inserting make sure that any current value is delete before being replaced.

    The PtrMap takes ownership of pointers placed inside.
    So when they are overwritten then they need to be correctly destroyed.
Fixed polymorphic destrcutor.

    Polymorphic objects need a virtual destructor.
    When they are called from a pointer to base class you need
    the destructor to correctly destroy the current object.
Initialize all members in the constructor.
Update Tests.

    Added explaining comments to all tests.
    Added explicit tests to make sure all dynamic objects are
    correctly destroyed by the end of each test.
Added tests for WorkQueue
Added more comments on the tests
Added more comments
Add comments
Make sure the worker thread is allowed to execute
Add another test
Update the git ignore file so that temporary editor files are not shown.
Update make files so that they are built in the correct order and include required libraries