Update makefile to build gcov separately

Previously you couldn't build the gcov target at the same time as
building the all or test targets since it just modified the compiler
and linker flags for their build targets.  Now everything is duplicated
for the gcov builds so that they can be built at the same time.  It
also means that you can issue a "make GCOV_LIBPINKYSIM" and get the
expected results, a code coverage run of just the libpinkysim unit
tests.
Add watchpoint support

I also refactored the breakpoint code from the last commit so that
breakpoints are just treated as a special case of watchpoint and can
therefore share a considerable amount of code.