Make reporting functional, fixing issue #13.  Now there is no var to hold reports, they are always passed as an argument.  The functions that print the final reports just take the entire report data.  A few functions called while tests are running will take a ref to the report data so they can deref to get the latest.

Note - this breaks backward compatibility with existing tests, that need to check if another non-parent test has passed.  Will make some more changes to minimize the breakage.
Clean up change of blockers functions.  Also fix issue #24
Fix issue where test-passed? wasn't getting the reports argument it needed.
Merge pull request #25 from weissjeffm/reporting-functional

Make reporting totally functional