MRG: selection with an expression in tree2array

`tree2array` has a new optional `selection` argument which is internally used to select which entries are copied to the output array. The expression can be anything `TTreeFormula` [1] can handle.

I also cleaned up the existing C++ and Cython code a bit.

TODO:

* ~~Enable branches used by the TTreeFormula even if not requested by the branches argument.~~
* ~~Return branches to their enabled/disabled state before the call to `tree2array`~~

[1] http://root.cern.ch/root/html/TTreeFormula.html