These patches implement block layout (draft 5), and incorporate Benny's
comments from the last round.
The panlayout error case is broken by patch 5, but is restored via
patch 6 and a separate panlayout patch to follow. If there is some
better way to handle this let me know.
Fred