* Implement Utf8.decodeUtf8 by using String constructor and a search for the replacement string "\uFFFD". This greatly simplifies the implementation, speeds it up for ascii and saves in memory allocations for non ascii strings.
* Remove irrelevant comment about indexOf.
* Code style changes following review.
* Remove TODO + remove final per google style.
* Delete decodeUtf8 from UnsafeProcessor as it inherits the intended implementation from its parent.
* Move decodeUtf8 implementation from Utf8::Processor to Utf8 since it has only a single implementation which is independent of whether the processor is safe or unsafe.
* Change only the logic of UnsafeProcessor to use String constructor
This is done since some Android versions will see a performance regression if this change is applied.
So we are making this change only for UnsafeProcessor which is not used on Android.
* Remove duplicated Javadoc
Co-authored-by: ahadadi <ahadadi@outbrain.com>