Use cl::SubCommand to improve the code in llvm-profdata.cpp in a few ways.
- Removes arg parsing code to pick which subcommand to run
- Removes custom help message code
- Emits a more standard help message
- Removes redundant options used by multiple subcommands
- Moves all options to one place at the top of the file
Unfortunately, there are a few top-level options that llvm-profdata and llvm-profgen use. That is why MergeSubcommand is defined in InstrProf.cpp, so that the subcommand can add these top-level options.
The commands used by tools shouldn't live in ProfileData library.