Create LWJGL EngineSubsystem

So here's the first step toward a major subsystem for lwjgl.

The update call had to be split into two because Input.update() wouldn't work if it was called after Display.update() -- probably all of the input events were lost at that point.

In the same way, shutdown and dispose had to be separate as the audio system couldn't shut down cleanly otherwise.

I have not implemented everything necessary to make it work headless yet -- I'm certain from my previous headless branch that there are more Display and Mouse references out there.

This code ran without errors for me.
This code passes checkstyle.
This code should be formatted correctly.