Get coverage to work

Measure lib/* coverage based on test execution in addition to spec.
Test and spec changes are for satisfying generic rules below.

 * simplecov requires target code to be loaded before invoking
   SimpleCov.start.
 * Invoke SimpleCov.start once. Multiple call works if use_merging =
   true (default) but unnecessarily complex.

Report from 'rake coverage' at this point.

  All Files (69.33% covered at 842.16 hits/line)
  64 files in total. 5931 relevant lines. 4112 lines covered and 1819 lines missed