simplify part of AddTradeRoute
remove an assertion which was too aggressive

If there's no space dock, but an offline shipyard this case happens.
No division by zero efficiency, as EffFactor() already takes care.
fix something in the "find ideal number of industry workers" code

5242bbe2670404f9a7564621a281b318b1a947b7 introduced another problem;
if the functions exits due to workers being at 0, removing the last
worker may (probably has) increased the turns needed to build,
so undo this worker removal in this case.