Underscore.js implementation of Cartesian Product (without any mutable variable).
@see: http://stackoverflow.com/questions/12303989/cartesian-product-of-multiple-arrays-in-javascript