Preliminary support for custom resolutions.

If gl_mode == -1, then use vid_width and vid_height to determine the resolution. Only the barest of menu support at present (that is, enough to not crash on -1).