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.
That kind of UI might be in the design that I will discuss with Joe and Tim today, we have explored some variants of that before and I think it's a good idea. This was more like a temporary solution to the very common browser use case of creating new rows.

There is also no way to find out if a property, in a realm loaded from file, is a primary key right now, correct? If that is so, that also means that it won't complain if I violate the primary key, right? Perhaps we could then have a temporary solution with a menu item "Check uniqueness of property..." which lets the user choose a column that is to be checked for uniqueness. In any case we would have to rely on the user manually telling us what the primary key is.