Init commit
Add carriage class hierarchy.
Add Train class.
Add Carriages and Train factories and generators.
Add Main class.
Rework Train class, add TrainSorter, OutOfRangeExeption
Rework OutOfRangeExeption
Add enums
Add log4j, TrainSimpleUtils, rename abstract classes
Remove weight and data variables from AbstractCarriage.java
Add createCarricage method to the carriage factories
Add NotNullException and SimpleTrainFactory