Define Manifest object with native accessors
Use Manifest object instead of hash

This is the first pass of using the Manifest object with the native
accessor methods to hold the manifest data. It makes the tests run
again, but there still are some places which aren't covered by
tests, which need to be moved over.

This will give simpler and less code in the end.
Make HTML output work with new Manifest class