bug fix: NMEA/AIS/SeaTalk: cast functions with std::unique_ptr resulted in undefined behaviour.
This is an embarassing bug in the '*_cast' template functions which took ownership of
the 'std::unique_ptr' and returned a casted raw pointer. In the process the object was
deleted. Subsequent accesses through the returned pointer was access to freed heap
memory which is undefined behaviour.
From now on the 'sentence_cast' and 'message_cast' functions that take 'std::unique_ptr' as
argument, return a casted 'std::unique_ptr' which takes ownership. This has consequences
for the calling code if using the cast functions with 'std::unique_ptr' directly.
The raw pointer variants are not affected, obviously.