Added better comments
Added slide state

This struct is used to interpolate between two values in a specific number of
steps. The interpolated value can rounded to be more accurate when using small
values.
Rewritten the most of the code

Added comments and better implementation for interpolating interval values.
Next the file will be splitted into a header and implementation file.