DataNode Composite style

This is the first time the Composite programming pattern is really going
to be used.
Got rid of BetterSmooth

Decided BetterSmooth wasnt really a 'building block' and should be
created by the user if wanted
BasicSmooth Stuff

Added start and end, and cleaned its implementation a bit
Added a bunch of comments

Bunch of comments added, enums have redundant comments, but I want to
leave it like that. I feel like it opens it up to end users potentially.
Added Constrain

Constrain is added in this commit, it basically is used to constrain the
data between two data points. This is potentially useful if the data
falls out of range, this can correct that.
Created Remap

Added remap to the project.

Within DataMorpher there is now a warning on remap and constrain,
because they basically destroy the data with random paramaters. They are
currently set to 'b' and 'h', because those are pretty decent to the
data.