Initial commit of entire Synaesthesia 2.4 release.

This is everything from synaesthesia-2.4.tar.gz,
with MD5 of 784105cbeed3ab209231675f0e029497.
Remove files that can be generated by Autoconf.
Update files used by Autoconf.

Changes in configure.ac are for newer version of Autoconf.
Changes in acinclude.m4 are newer version of sdl.m4 from upstream.
Files AUTHORS, ChangeLog and NEWS are just placeholders to
satisfy Autoconf. To generate ./configure, use autoreconf and
automake --add-missing.
Add .gitignore for Autoconf generated and compiled files.
Fix warnings by using const char * for constant strings.
Use Automake conditionals to selectively compile files.
Add conditionals for host OS detection.

AC_CANONICAL_HOST is used instead of AC_CANONICAL_SYSTEM.
Only that subset of functionality is needed.
Add Autoconf endian detection which overrides syna.h.
Add detection for getpwuid(), getuid() and pwd.h.

These Unix functions were used to determine where to put
the configuration file. The current directory is used if they
are not available.
Import win95sound.cpp from winsyn-1-2.zip as winsound.cc.

This is the Microsoft Windows sound and CD-ROM code from the old
Synaesthesia 1.2 port. Further changes are needed for it to
compile and work successfully with Synaesthesia 2.4.
Update winsound.cc and make Synaesthesia compile for MinGW.

Changes in winsound.cc update it for compatibility with
Synaesthesia 2.4. SDL requires SDL_main() instead of main(),
and it must be extern "C".

There is no output to the console because SDL adds -mwindows.
Instead, stdout.txt and stderr.txt are created.
There is a hang in closeSound().
Fix hang in Windows closeSound().

The wave in callback function is only allowed to call a few other
functions. The waveInUnprepareHeader() call was causing deadlock
when closing the sound device.
Add bootstrap script for generating ./configure via single command.
Use queue of completed wave headers.

In the unlikely event that several wave headers are completed
before the wait, lastWaveHdr would have been overwritten before
getNextFragment() could call waveInUnprepareHeader(). This change
ensures waveInUnprepareHeader() will always be called and the last
complete header will be used for data. This is an infinite loop
if header processing can't ever catch up, but that should be
extremely unlikely.