Changed WorkQueue to use a List<SharedPtr<WorkItem> > and ensure that it doesn't contain duplicates.
Changed AddWorkItem to take in a SharedPtr<WorkItem>.
Changed Render functions to use new WorkItem design.