Fix some signed/unsigned mismatch warnings and whitespace in Job module.
Add new API functions for creating announcements and combat reports.

Allow specifying the announcement flags directly, and adding unit
combat reports. Also, make announcement functions write the message
to the game log.
Use the new official gamelog output function in soundsense-season.
Use the new API to produce combat reports for aimed siege engine attacks.

This requires exposing the actual operator unit to lua code.
Account for meandering movement when predicting unit path in siege engine.

The movement is random, but there is an average slowdown coefficient.
Remove tired or hungry siege operators from duty when at peace.

The threshold is set at the level when they start to blink - normally
they would continue on with the job until they get a thirsty/hungry
thought, but immediately run off to eat if they lose the job (thus
refusing to load the engine after firing it). The code checks for
active sieges and whether there is a free replacement unit.
Adjust siege engine targeting weights.

Stop shooting at leaving caravan guards for one.
Merge branch 'siege-reports' into develop
Add a couple of useful scripts and fix two missing NULL checks.

- A script to unstick jobs trying to build walls from the same tile.
- A devel script for viewing the path a unit is currently following.
Pull the list of libraries to preload into a variable in linux/dfhack.

This is so that the workaround described here can be applied easily:

http://www.bay12games.com/dwarves/mantisbt/view.php?id=2688
Replace a std::string method not implemented until C++11 with a C++0x-valid substitute
Update structures