Create opening books by engines

I have known that we can use engines to calculate to create opening books. I have also known about some major disadvantages in this way. Recently I was inspired by some discussions on how good (and bad) some engines when playing openings. I decided to create this tool as a new feature of BanksiaGUI thus we all can try.

At the moment this feature is limited to build opening books for chess variant (not chess960) and Polyglot format only. It will use an engine to evaluate nodes of the opening tree to rank, expand, or trim off them.

There are two methods to build tree and expand branches:

1. Evaluate nodes from the root, wide first, keep and expand only nodes if their scores are from the threshold. If we set the threshold high enough to trim harder, the tree could be deeper

2. Create a full tree to the given depth (it is actually a Perft tree), evaluate all leaves nodes then calculate all internal nodes (via min-max algorithm) and trim off all nodes under the threshold score. Look like this method give better quality (than the first one) for the same depth. However, because of trimming after calculating, it has to calculate too many when the number of nodes grows exponentially by the depth, thus it is suitable only for creating small/shallow trees as well as small books,

This feature is the first implemented and there is still huge room for improvement. Please try and give me your feedback.