Fix handling of missing CSM matrix
The code checks for the camera-stage mapper matrix by looking at its truth value.
However, this is ambiguous because the matrix has many elements. That means that
if it's missing, we get the expected result, but if it's present
we get an error. I am slightly confused that we didn't spot this before - perhaps
it is a change between numpy 1.19 and 1.20.
I have avoided dict.get() and instead look it up with [] notation.
This will raise a KeyError if it's missing, which I
handle (it's converted to a ValueError with a helpful message).
If the key is present but the value is not castable to an array, we'll
get an exception anyway.
If anyone has an opinion on the "right" exception to raise if we try to access the stage-to-camera calibration before the stage is calibrated, I'd be happy to swap my ValueError for something more descriptive.