Refactor objs, mobobjs into array (#225)

Reuse array elements for fast item access
Items can no longer be referred to from pointers,
only using integer IDs which are also array indices.
This also means changing tile things to arrays.

Add CArrayReserve
Optimise CArrayDelete using memmove

Fix memory leak with AStar path

Fix high scores not displayed when playing last level

Fix some other memory leaks
Merge remote-tracking branch 'origin/master'
Fix config_test

Update hqx and cbehave submodules
Update cbehave submodule to remove warning
Fix some gcc warnings
Fix health being spawned at map top-left

Fix void*-to-int conversion warning
Fix game exiting immediately when players killed
Fix some more memory leaks (#204)
Load campaign from command line
Fix not being able to exit out of campaign
Add some sound effects in prep screens
Add CArray tests

Optimise CArrayInsert to use memmove
Change strings in CampaignEntry to dynamic
Fix OSX build
Fix editor crashes

Not performing deep copies of missions
Travis: treat warnings as errors
Editor: add Insert/Delete mission controls
WIP level 4 of doom campaign
Fix crash when adding mission objective

Cannot strdup a NULL pointer

Also WIP on doom campaign
Fix compiler warning missing field initialisers