Update the interpreter to deal with fragments in a different way

The previous implementation created a "sub" document
which doesn't match the python code, this way we get a full
microdata_document attached to each object, allowing the
itemref part of the specification to be implemented properly.
Implement other data extractions

These extractions occur differently for different types of
html content.