Overlapping nodes

* Parent nodes can share children nodes to support overlapping regions. Children nodes can therefor have more than one parent.

The destin hierarchy is now inferred from the layerWidths array instead of the nci ( children input counts ) array.

If a parent layer width is one less than the child layer, then it is inferred that the child layer has overlapping nodes. In which case the nodes can each have up to 4 parent nodes.

Otherwise, the child layer width must divide evenly by the parent layer width i.e. childWidth % parentWidth == 0 and assumed that the child nodes are non overlapping and each only have one parent.

* memory bug fixes
* bug fix in python list to c bindings