Fix a pants bug.

Makes sure that jvm_compile always creates needed products, even
if empty.

Also took this opportunity to get rid of the dangerous set_data()
method on products, and replace it with a safe creation method.

Auditors: pl