Fix overflow in timespan constructor. Cast to int32_t is happening too late

The timespan object is exhibiting an overflow if hours>8 are used. This should not be the case and can be fixed by casting (defining) all input parameters to int32_t. This does not increase the memory usage, as the final result _seconds needs to be casted to int32_t anyway.