changes to Graphic

* .size_changed(), and use in orig_sfc setter
* rework resize transform so that a scale remains a scale, and a
  resize_both remains AR-preserving when orig_sz changes
actually add res doc
TextRenderer changes

* changes to .normalise_options(), and use in res._mk_text_keys
* give size a default and rename to text_size to avoid conflicts with
  Graphic.size
* rendering options as gettable (but not settable) properties
* .get_info(), and use in .render()
graphics.Text class
fix doc: custom method links, util functions
util.pos_in_rect, Graphic.*anchor
Graphic.*anchor as properties to retransform

And fix .retransform() to actually work.
Graphic.tint
Graphic.tint_mode
no blit_flags arg to Graphic, etc.
alter Spritemap indexing behaviour

Now generates surfaces for each tile in the map, and just returns this on indexing.
Animation class
Spritemap: ncols/nrows args; sprite_* properties
reset Timer.current_frame_time on fps.setter
Scheduler.*pause_timeout, Animation.*pause
Graphic.require

And Animation uses it to change when source Graphic changes.