New format conventions and draft of Level format

ManiacLab data files are now split in a header and a body part. Each
part is a complete structstream. This allows cheap reading of header
information for each file type.

In particular, level collections can become quite large and it is
important to be able to read each level separately (for which there is
a table of contents in the level collection header).
Fix incorrect calculation of file sizes
Fix missing initializations
Rename attributes
Fix bugs in closing of editors and add a close menu item
Add widgets for level collections
Add support for type column in file chooser
Add support for opening from multiple vfs folders
Do not create a tile if the user presses cancel
Fix segfault (do not use pixbuf if select_image() returns null)
Track submodules
Refactor error signalling of level IO
Make level collection more POD-like

The object-oriented abstracted interface is implemented in the editee
anyways.
Clarify error message
Prototype methods to lookup tiles for LevelData classes