code: BugSet query(SortableValue keyValuePair) {
          if (doneMap.containsKey(keyValuePair)) {
              return doneMap.get(keyValuePair);
          }
          ArrayList<BugLeafNode> bugs = new ArrayList<>();
  
          for (BugLeafNode b : mainList) {
              if (b.matches(keyValuePair)) {
                  bugs.add(b);
              }
          }
  
          BugSet temp = new BugSet(bugs);
          doneMap.put(keyValuePair, temp);
          return temp;
      }
docs: A String pair has a key and a value. The key is the general category ie:
  Type The value is the value ie: Malicious Code.
  
  Query looks through a BugLeafNode set with a keyValuePair to see which
  BugLeafNodes inside match the value under the category of key.
  
  passing in a key of Abbrev and a value of MS should return a new BugSet
  with all the Mutable Static bugs in the current set Note also: This query
  will only be performed once, and then stored and reused if the same query
  is used again.