def copy
    copy = self.clone
    copy.vector = @vector.copy
    copy.color = @color.copy
    copy.location = @location.copy
    copy.tags = @tags.clone
    copy.identifier = generate_identifier
    copy.name = @name ? "Copy of " + @name.to_s : nil
    copy
  end
def copy
    copy = self.clone
    copy.vector = @vector.copy
    copy.color = @color.copy
    copy.location = @location.copy
    copy.tags = @tags.clone
    copy.identifier = generate_identifier
    copy.name = @name ? "Copy of " + @name.to_s : nil
    copy
  end
Takes a hash with these keys and defaults:
  :name => nil,
  :location => Location.new,
  :color => Color.new,
  :vector => Vector.new,
  :age => 0,
  :size => 1,
  :tags => []
Make a deep copy.