Null Object for parts

Ship parts now implement the Null Object pattern, where instead of
having "Null" for an empty slot, they have an object of type
"EmptySlot".