A newly introduced TextRenderer is responsible for text rendering and text related bounds computation. This removes a bunch of code duplication, too.