Currently, llvm-objcopy doesn't recognize the output file format given by the -O option and implicitly calls
elf::executeObjcopyOnRawBinary if the input is binary.
This patches changes the type of Config.InputFormat and Config.OutputFormat to an enum so that
we can call executeObjcopyOnRawBinary function for other output file formats like MachO in the future.
In addition to this, this patch adds -O option into tests some tests because it seems that GNU objcopy simply
copies the input file if -O is not specified, that is, if you run objcopy -Ibinary foo.txt bar, the output file "bar" is
identical "foo.txt", not an ELF object file.
Furthermore, this patch adds "elf32-sparc" format to fix the "-B sparc" test in binary-input-arch.test.