Fix brush preview in GTK+ developer mode

This looks like an artifact from when the alpha channel was inverted.
Fix possible race condition in C4ParticleSystem construction

Previously, the calculation thread was initialized before the event it was
going to wait for after it is launched. However, since the thread starts its
execution in its constructor, it might access the event before the event
itself has been constructed.

This is fixed by making sure the event is fully constructed before the thread
is constructed (and launched).
Extracted skeleton from StdMesh.

Skeleton is now represented by the class StdMeshSkeleton.
AttachMesh with added functionality (#1177)

Simple implementation of matching skeletons/animations. Short description added to the documentation. More functionality to follow.
Merge remote-tracking branch 'origin/master'
Add categories for .ogg music files that can be referenced in SetPlayList.
Implement music fading.

Moved music system execution from game tick execution into main application execution so music fading works when the game is paused or lagging.
Set useful name for in-memory CStdFiles

This fixes a valgrind warning when creating a savegame, since in that case
the file name is filled with uninitialized junk. It is not used at other
places, since it is an in-memory file, and therefore was probably harmless.

Now we give a useful name to in-memory files based on the address of the
StdBuf object, which might actually be useful when debugging.
Initialize all structures when writing BMP file

Otherwise, we would partly write files with uninitialized data, such as the
padding bytes in a BMP, or the palette if not specified explicitly. This
mostly fixes corresponding valgrind warnings, but also makes sure we obtain
the same BMP files everytime we store the same StdSurface8 object, bit-by-bit.
Set pack alignment to 1 before reading the GL pixel buffer (#1181)

Otherwise the default pack alignment is 4, and when the horizontal window dimension
is not a multiple of 4, glReadPixels() would read past the end of the buffer we
provided.
Fix a delete / delete[] mismatch in C4ParticleSystem
Fail scenario saving if object saving returned nil (#1182).

This usually means there was a script error in the scenario saving function. Better abort instead of overwriting the existing scenario with garbage data.
Bugfix: Missing AttachParent in AttachedMesh

On loading a savegame with attached meshes, the AttachParent of their child is NULL.
Match partial skeletons (#1177)

When using AttachMesh() with the flag AM_MatchSkeleton the behaviour was changed. The child mesh no longer uses the transformation of the bone in the parent skeleton by order, but by name.
New script function: GetPXSCount.

Counts number of loose pixels of a material in an area.
Added new ambience object to Experimental.ocd.

Controls the music playlist according to the situation the player's clonk is currently in.
Build fix
Use COMMENT (not COMMENTS) as the category field to select songs when using SetPlayList.
Move FlightlessBird from Objects.ocd to Experimental.ocd.

Moved because it causes annoying errors on startup. It's not even a full definition and the material doesn't seem to be used anywhere.
Added GetPXSCount to docs.