Merge pull request #28 from vasi/linux-standalone

Make the standalone GUI build on Linux again
Prefs: Fix buffer overrun
Mac: Fix mouse grabbing

On Mac OS X, if mouse is grabbed, every time the mouse cursor changes, the
cursor is recentered. Workaround similar to Windows in video_set_cursor().
SDL: Remove unused method and ivars
SDL: Refactor driver_window/driver_fullscreen

Pull the common parts into driver_base.
SDL: Factor out hardware/software cursor

Decide which cursor to use in driver_base, not window/fullscreen. This has
the added benefit of deciding in one place, instead of separately in
video_can_change_cursor() and driver constructors.
SDL fullscreen toggle: Start implementation

Mostly works, but auxiliary things (cursors, palettes) are broken.
SDL fullscreen toggle: More refactoring

- Pull window titling into base constructor
- Remove unnecessary derived destructors
- Remove unnecessary use of derived classes as function parameters
- Cache the decision whether to use the hardware cursor once per driver reset,
  instead of globally.
SDL fullscreen toggle: Eliminate driver_window/fullscreen

Everything is moved into driver_base, which now can reset all the auxiliary
things like cursors and palettes, without a full destruct/construct cycle.
SDL fullscreen toggle: Fix cursor switching

We need to indicate to the video driver that we actually are able to use the
hardware cursor.

Also, don't bother disabling interrupts while toggling fullscreen,
we are already in one.
SDL fullscreen toggle: Use ctrl-return to activate
SDL fullscreen toggle: Fixup mouse, keyboard

After we toggle, we have to put the keyboard and mouse back where they were
before.
SDL fullscreen toggle: VOSF fixups

VOSF's the_host_buffer should never be freed--how did that ever work?
Also, it needs to be reset every time SDL_SetVideoMode is called.