added common hierarchy for Block and Document

- pair programmed with @lightguard
- fixes extensions invoked when parent is Document
Merge pull request #108 from mojavelinux/abstract-block

added common hierarchy for Block and Document