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

This is my take on issues/568.
What do you think?
What do you think about using a vector of outputs here instead? That way the usage would look like:

    compile({Outputs::object("..."), Outputs::assembly("...")}, ...);

Then it might also make sense to have Outputs just be a string and an enum.

I'm trying to avoid the problem that Outputs's constructor would have no easy to remember ordering. I'm pretty sure I would have to go look at it every time I wanted to add an output. This way that isn't necessary.