Read code redesign

Big changes in the read code: the main read function was stripped down to only
call parsing functions for each section - currently only the labels. This is
the right way to partly self-document the reading function and to split it into
nice small building blocks. Future changes will be made in this spirit.