extend the functionality of TupleObj::farray
- accept an arbitrary number of columns
- accept generic 'callables'
With the exception of an added 'projection', this implements the functionality discussed in GAUDI-1100. I propose to leave the projection for its own merge request (on top of this one)