Makes IDCreator a static class
Handles node layers in their own classes

Instead of handling each 'node-feature' individually through the
NodeWrapper (or it subclasses) a new hierchachy of classes childs
of NodeLayer has benn created. These classes make the 'right thing'
using a template method pattern with the features of their
corresponding layers.

This will allow in the future update a layer with the results of
the hydraulic calculations with only calling one method

node-feature = feature of a layer that represents an epanet
               node (junctions, reservoirs, tanks)
Handles link layers in their own classes

The same process made for nodes is now made for links
Creates update method on node layers
Uses a preferences class to get the field names of junctions layers