The prefix used to be the last (optional) argument to BoolOption. This decision was made with the expectation that only few command line options would need to pass it explicitly instead of using Bool{F,G}Option. It turns out that a considerable number of options don't conform to Bool{F,G}Option and need to provide the prefix anyways. This sometimes requires to explicitly pass BothFlags<[]>.
This patch makes prefix the first parameter, so it now directly precedes the spelling base string. Now 8 options dropped BothFlags<[]> and only two options (pthread and emit_llvm_uselists) need to pass an empty prefix.