A platform abstraction to create windows and deal with input.