While the backend code of FileCheck relies on definition of variable
from the command-line to have an equal sign '=' and a variable name
before that, the frontend does not actually enforce it. This leads to
FileCheck crashing when invoked with invalid syntax for the -D option.
This patch adds the missing validation in the frontend. It also extends
the option parsing code to support options that can only prefix their
value so as to detect -D=FOO as having value =FOO instead of FOO and
detect -D as missing its value rather than look for it in the next