Merging refactored multiblock code back to master

Fully rewritten multiblock backend, now based on lists of dirty/updatable parts and controllers.