Added compile_to method that with single .compile() can produce multiple target files.

This is my take on issues/568.
What do you think?
I went for a middle ground for now - didn't add vector(for reasons Steven suggested), but made multi-argument constructor private so if you want to produce more than one output you have to explicitly populates Outputs structure per Steven's quote.