def initialize type, serialize_as=nil, start_size = 0
      if type.is_a? Array
        type.each { |item| raise ArgumentError, "All members of type must be Class objects" unless item.is_a? Class }
        @allowed_types = type
      else
        raise ArgumentError, "Type must be a Class object or array of Class objects" unless type.is_a? Class
        @allowed_types = [type]
      end
      @serialize_as = serialize_as unless serialize_as.nil?
      @list = Array.new(start_size)
    end
Creats a new typed list
@param [Array, Class] type An array of Class objects or a single Class object
@param [String] serialize_as The tag name to use in serialization
@raise [ArgumentError] if all members of type are not Class objects