validateTabFiles slows down processing for very large input files because it includes finding the decoy prefix, which parses all lines of the input file.
We should split off the decoy prefix finding into a separate step, i.e. not part of validateTabFiles since that name does not imply any decoy prefix finding. This step should be skipped if the user provides a decoy prefix with --protein-decoy-pattern.
This step should also occur after the welcome message is printed to the console instead of before.