Gist::search() implementation =^.^=

Для реализации Gist::search() пришлось ввести Entry::find() -- по факту, обход дерева в глубину. Это почти что виртуальный метод (он наотрез отказался стать виртуальным), для того, чтобы не проверять Entry на тип: Inner или Leaf, так как у каждого из них свой find. И Gist::search(), и Entry::find() возвращают vector<LeafEntry<P>*>. 

В случае чего, можно не закрывать пулл-реквест, а просто оставить как есть. Он будет обновляться параллельно с изменениями в моём репозитории, пока не станет хорошо :)