COMMON: For portability, use generic_string() instead of string()

Thanks to darkstar.
COMMON: Replace MKID_BE by MKTAG

MKID_BE relied on unspecified behavior of the C++ compiler,
and as such was always a bit unsafe. The new MKTAG macro
is slightly less elegant, but does no longer depend on the
behavior of the compiler.
Inspired by FFmpeg via ScummVM.
SOUND: Add MP3 detection

We determine that a stream is a MP3 stream if
a) We find an ID3v2 tag   or
b) We find a sane MPEG frame header

This is not fool proof, but should suffice for us.
Should false positives become a problem later one, we should
a) Calculate frame lengths and check next $n frames   and
b) Check the ID3v2 tag for sanity   and
c) Also check for sane frame headers when we found an ID3v2 tag
COMMON: MSVC doesn't know about #warning
COMMON: _byteswap_xxx is defined in stdlib.h
COMMON: isprint() needs ctype.h on MSVC
GRAPHICS: DECLARE_SINGLETON already puts its argument into namespace Common

Doing it twice raises an error on MSVC (declaring an object outside
the "current" namespace, which ends up being Common::Common)
SOUND/VIDEO: Some disambiguation fixes that trip MSVC

MSVC doesn't do implicit conversions from int to float/double,
for example
COMMON: Some more MSVC peculiarity
COMMON: Some more .string() -> .generic_string() fixes
DOCS: Add Michael D to the contributors list
KOTOR: Add Difficulty Setting
DOCS: Add Michael Drüing's complete name
COMMON: Remove the 'std::' from calls to {,v}snprintf

Otherwise, the #define in system.h will not work
COMMON: Define PACKAGE_STRING if not using autotools

This string is used in various places, so we need to
manually define it if it hasn't been defined externally
DOCS: Add username to AUTHORS file
KOTOR: Add sounds for button mouse over and select