[WIP] Lazy argsort for trees

Following a discussion on the mailing list about the cost complexity of trees issue #964 was created.

Strategy B proposed that we argsort features only when we need to in the node.  This PR does just that.

Furthermore, it ties in with issue #936 in that the argsort matrix is no longer required but is computed when required, halving memory usage.

TODO: before merge: remove the sort operation completely and rely on min / max random split instead so as to be as fast or faster than the current master.