textbuffer: switch from unordered map to ordered list of updates

Passing an unordered map (char -> new contents) means there has to
be extra logic in the rendering function to spot offortunities to
CopyRect. This change should allow the CopyRect commands to be
generated from the Textbuffer, making it easier to test, and simplify
the graphical rendering function.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>