Gk browser editing arrays

Makes it possible to 

*add or delete one or more object in a table
*create and insert one or more objects at selected rows in array
*remove one or more objects from array at selected rows
*ditto plus delete
*move one or more objects within an array by dragging

The created objects are filled with default values set in my code. Should probably check if defaults exist for the classes and use that when possible. The logic for letting the browser produce the default values is that the user might want to customise this, and the browser user might not have access to the model classes.

I know this is a big merge, but there isn't really any good way to split it into smaller merges. I will provide a  flow chart for the actions, since each interaction involves around half a dozen methods in 3 or 4 classes.
Well, for one thing this is in response to a user action so speed isn't really that important, and it only takes some 20 ms per window anyway. It will only reload the visible cells, so it should not depend on the size of the table.

The reason I did it this way when you add and delete objects in a "class table" (showing all objects of a certain class) is A that you don't really know where objects will end up, or what other changes might be triggered in the ordering and B that these objects might be part of array properties that are shown in other windows, so it would require quite a bit of work to figure out exactly what to change. I would probably still be faster though.