Added code coverage analysis

This uses `lcov` for the C++ bindings and `istanbul` for the
javascript.
Small comment updates
Improved test coverage
Added a Makefile target for running valgrind

Type `make valgrind`.