[MRG] Small improvements to the tree code

This PR brings some new improvements to the tree code. In particular, it makes `node_reset`, `node_split` and `node_value` to be gil-free, which brings us one step closer to a possible multi-threaded splitter.

In any case, this results in slight speed improvements - but it is barely noticeable to be honest though. 

CC: @pprett