* add a basic limiter so that parsing scripts will 'give up' if they get the same 0-arg command 20 times
* fix crash that could happen sometimes when trying to check a pointer for sources during script decoding
* don't try to decode streams as scripts (misuse of the destinations collection)
Since scripts don't always end at an `end` or `goto` anymore (if there's a label from within the script to directly after the script), we need to make sure that these appended scripts still get a chance to add more scripts into the UI.
* add anchor for misc animations
* flags should be seen as hex in the script editor
* various table updates
* update text in empty block selection case
* update the block selection in the block panel when right-click selecting a block from the border block panel
* Editing a blocks layer attribute should be a one byte change
* refactor some code from ImageTests into an IntegrationTests base class
* add MapTests class
* add test for adding a connection to Viridian Forest
* Have `ConnectNewMap` call new `GetOrCreateConnections` method instead of just trying to get the connection data that may not exist.
* creating a new map should be considered an autonomous operation for undo purposes
* support connection-objects for FireRed
* crash less when reading invalid map / layout data
* show correct hover square when hovering over neighbor maps with borders
* fix elevation names / map permissions
* don't update tile render info for the block editor if the x/y change is a no-op
*
* Draw a box around the active map (but not the border) to make the separation between maps (and border blocks) more clear
* Change the Primary Map when selecting an event on a non-primary map
* update wild pokemon tooltip during refresh
* reduce visual studdering when dragging a tile around the map
* limit hover and selection to the actual map, not the border block
* say width/height correctly in the tooltips of the map size handles
* less flickering during undo
* include default OW sprite instead of blank (for example, tutorial catch man in viridian city)
* speed up the initial script-check process that looks for default trainer sprites for each OW by not caring about the length of child scripts
* use proper thread locking during block cache invalidation and renewal so that undo doesn't mess up the number of blocks shown in the block panel
* when docompiling, don't include a box that contains a partial script that's already in the main box
* when compiling, require arg counting for getting macro length
* don't include " within the string when getting the value
* use `TryParse` instead of `Write` for converting the enum value from a string, since this is an all-to-one edit, not a pull-from-stream edit.
This can happen if the run fails to generate due to a data conflict, such as in fr omega where a text run overwrites the first byte of a trainer team run