Rename Document to AbstractDocument, preprare for interface
Further renames to Abstract classes
Cleaned up interface package
Remove ImageCollection. This can be implemented outside of core easily.