refactor common EARL reporter code into abstract parent class

The test manifest and test result reporters share some common code that
can be put in a parent class. For consistency, also generate JSON-LD
from the test manifest reporter.
Merge pull request #113 from spadgett/earl-reporters

refactor common EARL reporter code into abstract parent class