Cleanup parallel structures code
Should combine sequential and parallel structures code. There is replication of code which should be removed. I suggest moving most of the code to the structures directory, and make sure the code can run both sequential and parallel mode.
With such a cleanup it should be easy to add new structures.
With this, it is worth considering whether to follow the approach of anuga.structures.internal_boundary_operator which allows a general stage/discharge function.
If that approach is followed, we might need to further enhance the treatment of momentum transport. Although internal_boundary_operator permits an arbitrary stage-discharge function, the outflowing momentum is treated more crudely. The latter does matter, since the outflowing momentum will influence the downstream stage, which in turn influences the discharge.
I seem to recall the 'internal_boundary_operator' passes the full momentum from upstream to downstream by default, with some other options (??). We might need more sophisticated treatments for structures which curve internally or have large momentum loss.