Prevent creating a global variable with the same name as a local one

This also adds a dialog box explaining why the variable could not be created.
Made rectangle and ellipse tools consistently stay selected after creating a shape
Made text tool sticky
Added autoscrolling while dragging
Fixed incorrect run feedback when opening editor
Fixed not showing run feedback when seeing inside
Changed library UI so sprites with empty names and costumes are still visible
Match protocol more closely for /poll in HTTP extensions
Fix updating size of scroll frames
Remove duplicate call to Translator.map in ui.parts.TabsPart
Remove duplicate call to Translator.map in Scratch
Remove duplicate call to Translator.map in ui.media.MediaLibrary
Fix translating menu items in sprite menus
Add missing strings() to Scratch
Fix feedback when adding a sprite var which already exists globally
Add feedback for adding an existing list; prevent vars/lists with the same name
hasVarName -> hasName
Prevent shadowing by renaming
Allow dropping reporters on predicates in text/number slots
Allow extensions to use %c

This also allows extensions to use built-in menus if they do not define menus of the same name.