Fixed double autorelease of info dictionary

CFBundleGetInfoDictionary follows the Get rule of CoreFoundation object
ownership: don’t use an ownership-transferring cast (i.e.
CFBridgingRelease), because we don’t own the object. A regular bridge
cast will suffice
This should probably be submitted upstream… wherever upstream is
Issue spotted by Clang’s code analyzer
Fixed possible NULL object dereference

Assert that the item to configure manufacturing for actually exists,
fail and log the details in the unlikely case it doesn’t.
Essentially, makes Clang’s code analyzer happy
Fixed possible NULL object dereference

If RuleTerrain::_mapDataSets is empty (???), a NULL MapDataSet* could
be dereferenced.
Spotted by Clang’s code analysis.
Fixed possible NULL object dereference

Debriefing can actually go pretty far without a matching X-Com base!
Let it go that far and then I guess craft and soldiers are lost? It
should never happen anyway.
Issue spotted by Clang’s code analyzer.
Fixed possible NULL object dereference

Don’t crash if a base defense mission has no base… or better, crash in
a fancy way with a log line and a failed assertion.
Issue spotted by Clang’s code analyzer.
Fixed possible NULL object dereference

Don’t crash if a sight trajectory has any points outside of the
battlescape, just ignore the missing tiles. Should never happen, but a
failed assert is better than a random fault.
Issue spotted by Clang’s code analyzer.
Fixed possible division by zero

If some unit has a negative height (???), its visibility calculation
will divide by zero. Make units with a negative height (???) invisible,
log the issue and crash nicely in debug builds.
Issue spotted by Clang’s code analyzer.
Fixed possible NULL object dereference

Don’t crash if passed an empty list of spotters when searching for a
unit to react. Should never happen, but uuuh, checking doesn’t cost a
thing.
Issue spotted by Clang’s code analyzer.