Make PluggedJoystick noncopyable

This is just safer because of the SDL_Joystick pointer. Now we can close it safely in destructor.
Dynamic keyboard configuration

Keyboard configuration can be generated by confJoyTool.
Input events are now read in a thread and protected with a mutex.
Input management.

Keyboard and joystick now look ok. Old config files are not compatible with the
new version and can be deleted.

First joystick => first player
Second joystick => second player
...
Nth joystick => nth player
keyboard mapping 1 => (n+1)th player
keyboard mapping 2 => (n+2)th player
...

If no joystick, first keyboard mapping is given to the first player, second to
second, ...  If there is no keyboard mapping, only one player is created with
the default mapping.  Default mapping is:
A => z
B => x
X => a
Y => s
L => q
R => w
START => Return
SELECT => Left CTRL

By default ACCEL is Backspace and QUIT is Escape.

confJoy has been replaced by confTool because it configures keyboard too.  It
takes 1 argument wich is keyboard mapping number to configure. Use 0 to disable
keyboard. In this case, default mapping will be used if it is needed in game.
Use type long for addresses.

Pointer length is the same as long, not int.
This is more portable code.
Fix makefile

keyboard.cpp does not exist.
Merge branch 'input-controller'

* input-controller:
  Fix makefile
  Use type long for addresses.
  Input management.
  Dynamic keyboard configuration
  Sound system: make alsa working
  Alsa: link against libasound
  Remove OSS and use ALSA.

Conflicts:
	unix/input/joystick.hpp
	unix/joystick.cpp
PluggedJoystick was not uncopiable in input-controller branch
GPL headers
Input controller: free memory at exit

This solves the black screen bug. Screen was staying black after program exit.
Sound system: free memory at exit.
Sound system: clean exit

Thread exits nicely now.
Clean exit on signal.

S9xExit function is called when a signal is caught. If snes9x is started from an
ssh shell, it can be interrupted by Ctrl-C and was not exiting nicely.
Bad configuration file management

If configuration file can't be opened or is bad, a new one is created with
default settings. If this is impossible for some reason, program quits
nicely (close SDL).
Default config modification

Old default config was "European": keys were "left to right". On snes, buttons
are "right to left":

L                      R
   ^
   |                 X
<-- -->           Y  A
   |              B
   v

new mapping (still for qwerty keyboard):
    A -> d
    B -> s
    X -> e
    Y -> w
    L -> a
    R -> f
START -> space
SELECT-> left control
ACCEL -> backspace
QUIT  -> escape
Readme: palerider reference added.

let's give credit where credit's due.
Input controller: check joystick before adding it

Some keyboards aren't compatible with SDL and are detected as joysticks. Kalehrl
found how to fix here:
https://code.google.com/p/mame4all-pi/issues/detail?id=7&can=1
ConfTool: check joystick before adding it

Some keyboards aren't compatible with SDL and are detected as joysticks. Kalehrl
found how to fix here:
https://code.google.com/p/mame4all-pi/issues/detail?id=7&can=1
Input: don't use SDL joystick index as player index

Since some SDL joysticks are ignored because they are in fact non compatible
keyboards, player index is not always the same as joystick index. We need to
find the player corresponding to joystick index.
Merge branch 'kalehrl-keyboard'

* kalehrl-keyboard:
  Input: don't use SDL joystick index as player index
  ConfTool: check joystick before adding it
  Input controller: check joystick before adding it
SoundSystem: fix mode verification

sizeof(one_array) != number element of one_array
All: Remove useless includes

Many includes were C includes or just useless. It is better to include only
needed files.