Fix some bugs in attack.cpp.
Avoid using a fake unit for resistance calculation
Fix a bug and extract a function.

find_vacant_castle() will not count castle-hexes with own units on it.
count_free_hexes_in_castle() does this.
Improve Combat Analysis.

- Introduce some parameters.
- Improve overall strategy according to test results.
- Consider poison.
- Use a cache for simulation results.
- 2 Analysis strategies (normal and "best response").
- Error handling for special cases.