Reimplement type3 font rendering for the Arthur backend
The new implementation uses beginType3Char/endType3Char. It is *much* simpler than the previous implementation. This patch does not remove the old implementation. You can switch between the two by setting the return value of the method interpretType3Chars (true: new implementation, false: old implementation).