Allow definition of ship cargo at creation

To avoid creating thousands of entities, the universe holds a template copy of each commodity. These are then placed, repeatedly, into the hold. If a ship would release a template item, either through ejection or explosion, it is replaced with a genuine cargopod at that point. (issue #39)
Fix memory management bug in last commit, include large explosions
Continue updating cargo generation

New scripting:
ship.cargoList (similar to player.ship.manifest.list)
ship.setCargoType( SCARCE_GOODS | PLENTIFUL_GOODS | MEDICAL_GOODS | ILLEGAL_GOODS | PIRATE_GOODS );

Change likely_cargo values in shipdata to more reasonable levels.
Add trader AI, more updates to AI library

ship.dumpCargo can now take optional number of items to dump (not for player ship)
Allow trader AI to make distress calls

JS-sourced distress calls don't automatically dump cargo or flee
Make a start on pirate AI (doesn't work yet)