Rework Children property to be an array

Instead of an id-indexed object, the children property is now an array.
This makes it many times faster to iterate this property and leads to actual
performance gains (see also http://jsperf.com/performance-of-array-vs-object/3)

It's not a plain array, but an array with superpowers: You can still access the contained
objects by id by doing 
````
var child = parent.children.ids['idOfTheObjectIDesire']
````
This works since this array intercepts all push, splice etc. calls
and updates the ids property on every modification.

This commit also simplifies the group adding/removing methods.
Most of their work is now being handled by the generic object.replaceParent() method.

If added a few tests covering the child adding and removing methods.