def add_filter(id, pattern, &block)
      filter = LineFilter.new(id, pattern, block)
      @filters << filter
    end
def add_filter(id, pattern, &block)
      filter = LineFilter.new(id, pattern, block)
      @filters << filter
    end
if a line doesn't match any of the patterns, then
 @param name a name used to identify the command in ouput
 add a new filter for output from this command
 @param id [Symbol] an identifier for the filter within the command
 @param pattern [RegEx] a regular expression which matches a pattern in a line
 @yield yields back an array of matches from the pattern.   The block should return
   a CommmandDefinition#result_... variant