Adding some more methods to abstractship

Several methods added, java doced, tidied up the code majorly from the
prototype stages.

Added in an extra constructor for ships so that they can "clone" a ship
object. Which is helpful for doing prototype like design patterns.