cartesian product of enums (ticket #442)

Would welcome discussion, I'm still fuzzy about the cloning part.

This PR is sponsored by [the yolo mode](http://neverstationary.files.wordpress.com/2013/01/yolo-1.jpg?w=1200)