Fix breed methods

See https://github.com/NetLogo/NetLogo-Headless/issues/3. I have a number of commits here because I wanted to show the development of the refactor. They are all squashable upon request. The StructureChecker refactor (77494d1) is only partially complete. Depending on how we want to go with the refactor, I could:
 1) remove it entirely
 2) pull it over to another branch
 3) finish it on this branch before merging in
perhaps rewrite as:

    (breed.isLinkBreed, breed.isDirected) match {
      case (true, true ) => ...
      case (true, false) => ...
      case _ => ...
    }