More equipment customisation

A bunch of changes to make equipment definitions more flexible and OXPable.

Summary:
* `PS.maxAftShield`, `PS.maxForwardShield`, `PS.forwardShieldRechargeRate`, `PS.aftShieldRechargeRate` now writable
* `PS.heatInsulation` now writable
* `S.cargoSpaceCapacity` now writable and change to how large cargo bay is implemented internally
* `equipmentAdded` and `equipmentRemoved` ship/world events to make monitoring ship equipment status easier
* Various equipment items allow easier OXP changes to their functionality.
* Concept of "provides" for equipment - e.g. a "navigation computer" item could provide ASC and Docking Computer. `S.hasEquipmentProviding(key)` method to allow easier OXP use of this.
* New `S.injectorBurnRate` and `S.injectorSpeedFactor` properties to control injector properties per-ship
* New `S.scanDescription` property for customising the "legal status" text through the STE
* New `updateEquipmentPrice` condition script function for modifying the price of equipment