- Changed compile-time-bound strings to be sprawl::StringLiteral instead of sprawl::String.
(Was going to do raw char*, but StringLiteral allows the length of the string to be baked in at compile time and thus avoids costly strlen() operations.)
- Split Event::WaitMultiple() into Event::WaitAny() and Event::WaitAll()
- Added Event::NotifyAll()
- Added variadic template functions to make WaitAny(), WaitAll(), and NotifyAll() easier to work with when the list of events is known at compile time (i.e., Event::WaitAny(event1, event2, event3); to wait for all thre events instead of having to construct the EventGroup manually - also ensures EventGroup construction eficiency by constructing it with the proper capacity for the number of events being waited on)