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 think I'd prefer to read this as

    compile(Outputs::bitcode(filename), args, name, target);

'TargetFilenames' adds a new overload of the meaning of 'Target'. I think also 'output' more closely matches other compilers (e.g. clang/gcc -o).