Change text box to return remaining text as UTF-8, improve Win1252 handling internally, raise errors or warnings rather than silently replacing invalid glyphs

Currently if using an AFM-font,Prawn's text box will return overflow text in Win1252 encoding, even though the user must provide their text in UTF-8 format. To render this overflowed text, the user needs to pass `:skip_encoding`, which is a fairly awkward workflow.

In an ideal setting, we should treat any transcoding to Win1252 (<strike>which isn't even supported by Ruby, so we implement it ourselves</strike>) as an implementation detail, and never allow the transcoded text to cross the public API boundary. In other words, Prawn should be UTF-8 in, UTF-8 out to keep things simple for users.

See related discussion on #777, and on #779.