Add a new callback for objects that needs a redraw

Make it easier to redraw only parts of the canvas
for objects that need it instead of forcing a full
redraw. Most of the objects do not use it yet though
Add support for players subsitutions
Check for 30fps correctly
Fix updates in capture settings
Add more ranges for quality
Fix weird bug changing static quality objects after deserialization

The Config object is initialized setting renderEncodingQuality
(the latest EncodingQuality object set) to High. After deserialization
EncodingQuality.High has the value of the serialized renderEncodingQuality
property as it was passed by reference.
Use config values for the default capture settings
Catch errors gracefully when a project fails to open
Add new icons for player swapping
Hide substitution button in the event editor
Load surfaces in the Player and scale using the correct width