Added Cartesian Array combine function

I have added a Cartesian Product function which takes arrays in the form: 

```
array( 
      array('a', 'b'),
      array('1', '2') 
)
```

And processes them into:

```
array( 
      array('a', '1'), 
      array('a', '2'),
      array('b', '1'),
      array('b', '2')
) 
```

I don't know if this is useful/common enough to go into this class but am proposing anyway