Initialize XInput2 on demand - fixes ash_shell mouse events
MessagePumpX::HasXInput2 currently assumes a message pump has already been
created and so XInput2 has been initialized. This may not always be the
case (eg. when deciding early at startup whether we should load
touch-specific resources).
Instead we now initialize XInput2 on demand - either when the message pump
is created, or when HasInput2 is called earlier.