More features, render/logic in separate threads
Simplify/streamline the entity creation

Implement a create_entity method, this will get a unique ID and create an entity
with the provided components.

Implement a get_unique_id method that will return a unique ID.
Implement run/run_thread, clock and create_system on SystemManager

Implement utility methods run/run_thread on the SystemManager, these are
used to start looping that specific manager, be it in the current or in
a new thread.

Implement a clock for SystemManagers, make SystemManagers keep track of
their run speed, and allow for limiting of update speed.

Add create_system to SystemManager, a simple method to create a new
system based on a class passed in and some additional arguments. Really
just used to more easily inject dependencies.
Add a stop method to the SystemManager that sets stopping to True
Remove unneeded import from pong client
Properly catch Exceptions in systems
Fix key processing and make CTRL+C work again
Fix position logic in BoundBounce and EdgeTrigger systems
Proper representation for VelocityComponent
Implement bounce multiplier as a component rather than a constant in a system
Tweak edge-trigger system
Remove debug line
Make reset_position a Point rather than a regular tuple
Updated comments
Add left/right support to ControlComponent/ControlSystem
Start work on collision side detection
Add a test for the directional object test, to be used with collision
Component shouldn't have an __init__ because it's a minimal bag of data
Return empty dictionary if no components
Add print_components to list all components