protect against a divide-by-zero, set up event callbacks to work with nested ds arrays
This should solve issue #396 (closed) by recursively searching the array fields of a scalar for arrays that match the incoming event signature.
Toplevel array fields are searched first, after which the fields are traversed again in order to recurse. This should keep the same performance as before while still making it possible to receive events for more complex nested data structures.