Run gcov code coverage tool on unit tests (and sim)

See: http://en.wikipedia.org/wiki/Gcov

Test this with:
````
make all_ut_gcov
````
which will run all unit tests and produce .gcov reports in the build directory for each of the unit tests.

These reports provide a count of the number of times each line was executed during the unit test.  ````#####```` means never executed.

Initial support for this is also added to the posix simulator.  gcov data is collected from the sim and written to disk when you hit ctrl-c.  There is currently no convenience rule in the makefile to generate the gcov reports.