Hack around an issue with chapel.tab.h/cpp recipe.

The `$(OBJ_SUBDIR)/chapel.tab.o` recipe in `compiler/parser/Makefile` has a
prerequisite `chapel.tab.cpp`. There are several recipes in that Makefile that
declare `chapel.tab.h` (note .h as opposed to .cpp). "chapel.tab.h
chapel.tab.cpp" is a single recipe since both files are output when bison is
called. And, both files should be rebuilt when chapel.ypp, their prerequisite,
is changed.

With parallel execution, the fact that both chapel.tab.h and chapel.tab.cpp are
separate files causes a race condition. Make see them each as dependencies for
other recipes, so it invokes the recipe to create chapel.tab.h and, in a
separate job, the recipe to build chapel.tab.cpp. This creates two instances of
the bison call. The final state is ok because the second bison call will
eventually finish and write out the file.

The issue arises when another job (that was depending on either chapel.tab.h or
chapel.tab.cpp) begins after the first bison call completes, but before the
second one completes. It then gets a file that is incomplete (the second bison
call is in the process of writing it out).

To workaround this issue, change the `$(OBJ_SUBDIR)/chapel.tab.o` recipe to
specify chapel.tab.h as a prerequisite. And, instead of using `$<` to pass the
files to the CXX call, list each file individually and use chapel.tab.cpp
(which is what it wants). IOW, use chapel.tab.h as the prequisite so bison only
is invoked once. And then use chapel.tab.cpp once the chapel.tab.h prerequisite
is met.

(I am open to better solutions, but this is the best one I could come up with.)