Camera serialising

This is all getting pretty grubby now. The camera serialises when its
state changes, but the semantics for the agent/admin view are a bit
murky.