Block changes:
- New 'ask' block to get string from user
- New 'text to codes' and 'codes to text' blocks to convert between strings and lists of Unicode code points
- Added optional border parameters to 'draw circle'
- Use pixel-level precision in touchingSprite (not just the bounding-box intersection)
- Rename category 'Numbers' -> 'Operators'
- Rework Variables category
- Added 'recover' function that one can run in the terminal window if GP gets an error to save the current project in a file named 'recoveredN.gpp' (it picks a unique file name)
- Use Cairo to render turtle trails
- Use Cairo to render authoring-level drawing commands (draw circle, etc.)
- In Dev mode, add a Stage menu command to switch between Vector and Bresenham pen trails
- When creating temporary variables, prompt for the new variable name
- Try to avoid variable name conflicts when creating and renaming variables
- When renaming a field variable, avoid conflicts with local variables
- Do not offer the 'monitor' menu command for script variables
- When resizing an imported image, crop transparent pixels
- Increase the font size and bubble width of bubbles used for hints and 'say' block
- Suppress 'delete' menu item for blocks in the palette
- When expanding a block in the palette, pull it to the front so its collapse arrow can be pressed
- Make the read/write file blocks save and read bitmaps as PNG files
- Make the read/write file blocks save arbitrary objects using serialization
- Fix: an elusive bug in 'duplicate' (and other menus) that could sometimes crash GP
- Fix: cannot monitor shared variables