adjust shipdefense building properties according to http://www.forum.birth-of-the-empires.de/viewtopic.php?f=26&t=2518&p=33144#p33144
fix shield generator prerequisites

For some of the races they were pretty strange (not sure whether it
was intended though). Unified to the ones for Terraneans.
make ai more willing to bomb
fix not unsetting improve shields command in case max max shields is exactly hit
supposedly paper over (or fix ?) random crashes when loading saves

Change order of race controller serialization back to what it was
previously to commit 7d09ba853d0c8a2f8eca3fc9669decb0101ebb37,
which appears to be the one introducing or triggering the problem
according to bisecting.
Bug description here:
http://www.forum.birth-of-the-empires.de/viewtopic.php?p=33172#p33172
It still makes absolutely no sense to me *why* this change should fix this,
but it apparently does according to tests, and the reverse change was
part of the commit mentioned above.
Serialization ordering was important for getting an updated race owner
member in the CIngameEntity tree, but it is no longer (and should
not be) as races are never reallocated now
(since a09a70283839385bed0a65c7472f867d368510a7).
I'm assuming that something in the race (probably major race with all
those members the class has) serialization callstack
is responsible for this very weird behavior and this commit
papers over it by calling that stack almost last.
Dangling race pointers don't seem to be involved, as their destructors
are only called once they should be.
fix code not executed in release mode

The shared ptr includes for some reason overwrite the custom
assert, changing inclusion order doesn't help.
implement use count sanity check for CRace shared pointers

It is incremented by one for every system, minor race and ship a race
owns. (Majors cannot be owned, Minors can only be owned by Majors.)