Added option to reuse columns on decision trees.

When building more advanced decision trees I noticed that each column
was only used once in the entire decision and that more accurate
predictions can be attained through reusing columns on different
branches. This comes at a cost of generating a more complex tree so it
was implemented as an optional property on the DecisionTreeGenerator
class.