More flexible structs + configurable  sizes of nodes

I have added possibility to configure sizes of squares in DeSTIN topology. You can use nci[] parameter to create nodes with different sizes for each layer separately. Previously there was a rigid structure with each node above layer 0 being 2x2 square.

I have also rewritten a few internal structures towards flexibility for adding future functionalities like:
- addition/deletion of centroids
- hexagonal topology
- foveal/peripherial view
- other topologies

Previous rigid structures:
- Destin.nInputPipline
- Destin.inputPipeline
- Destin.inputOffsets
- Destin.nBeliefs
- Destin.beliefs
are replaced by:
- Node.belief
- Node.outputBelief
- Node.parent    (pointer to parent node)
- Node.children  (pointers to children nodes)
Now the observation is being made dynamically by "looking around" via pointers. Input offsets are used only for nodes from layer 0. The links between parents and children should allow modelling of future topologies easier.

Note that: destin->nci[node->layer] differs from node->ni. The former means the number of inputs/links from childs, the latter means total input dimensionality.