- Added `.copy_surface()`, which will allow subclasses to override this method if they wish to use a more specialised/optimised process for copying their stored surfaces
- Added `.update_surface()`, to allow a Recurface object to be manually flagged for update in the next render
(the expected external use case for this is to indicate to the Recurface object that the surface has been changed,
whenever this change is state mutation rather than assigning a new value - simply assigning a different value to `.surface`
will flag this automatically, but mutations will not)
- Reordered constructor kwargs
- Minor code style changes
- Further minor optimisation in `.render_priority`
- Various improvements to comments and docstrings
No breaking changes.