Fix issue 12351:  rdmd --makedep(end|file) uses the source file as the target

Having the source file as the target for the dependencies on a Makefile
is useless, as there is no rule to rebuild the source file, Make can't
use that information at all.

To a have a meaningful target name, now --makedep* options require -of
to be present too.
Fix issue 12354: rdmd --makedep(end|file) doesn't output empty rules for all source files

Now rdmd --makedep(end|file) will print an empty rule for each source
file.
rdmd: Improve --makedep(end|file) output format

The current format is not very human friendly and also makes doing
simple checks for testing quite hard. The new format is based on GCC's
format, and it looks like this:

target: \
 source1.d \
 source2.d \

source1.d:

source2.d: