Issue 1215

Sorry about the largish PR folks.

The crux of the change is that `DetailsPanel` now has a card layout, where there is a card for each active layer of type `DetailsPanelTab`.  Previously, there was just the one `DetailsPanelTab`, which was updated each time the selected layer changed.

As a result, much of the update/hide/show code is no longer required, which `DetailsPanelTab` (and its children) initialised with a layer in its constructor.


Actually, I might be able to get rid of a few of these now.  They were kind of an interim thing while I was hacking.  Let me see...