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.


I love the smell of doLayout in the morning :p