Datum class now implements abstract methods
    - Add
    - Subtract
    - Multiply
    - Divide
    - Modulo

This is implemented by the concrete implementations of Datum class

This ensures that Datum.Flt and Datum.Int types are handled correctly

Datum.Str and Datum.Bool throw exceptions upon arithmetic operations
HierarchicalSplit.split logic has been modified for SUM case

The new logic is probably still broken but seems to work with several
different ranges and constraint values.

Further testing is needed to ensure that the logic is correct