lib/tree: use node_first_key in a couple of places
lib/tree: refine tree_search_r binary search requirements
lib/tree: add generic node_key
lib/tree: replace {branch,leaf}_search with generic node_search
lib/tree: add node_search_hypo
lib/tree: use node_search_hypo in {branch,node}_insert
lib/tree: add recursive node check, partial tree check
lib/tree: add recursive node dump; use in tree dump
lib/tree: use node_map in node_dump