Use type-safe rendering engine identifiers
Allow the specification of an engine on window creation
Use builder pattern for window creation
Use and enum for the engine types instead of relying on string identifiers

Self-documentation ftw!