Fix up our GPU back-end FVM/cable cell tests
They're a bit of a mess!
Ideally, any test currently that checks state or time evolution for cable cells should be able to run with both the cpu and gpu back-ends, and the built unit test should run them on both, if we're GPU-enabled and there is a GPU present.
The alternative is to make two unit test runs: the runner sets some state or flag that determines the cpu or gpu execution context. Each specific test then runs with that context, and anything that is truly GPU-specific checks the context first.
Our unit tests don't always go through the execution_context, there are specific parts of the backend code that are (or should be) explicitly tested on the GPU/CPU, for example: matrix assemble/solve and mechanism instantiation. Are those tests in a good state, or is one of the backends more covered than the other? Will it be enough (to your knowledge) to make sure that all existing unit tests that require an execution_context run twice with and without GPU support (when possible) or are there some hidden assumptions made in the code about the backend which will require refactoring/extending?