J and Y and now be chained (like YYYYYY) to copy a glyph across the
'wire' they form.
This is a simple implementation of the feature. This changes both J and Y to
have loops in their definitions, instead of being single reads and
writes, which will make them heavier and have a adverse effect on
benchmarks. It also makes it harder to explain how orca's VM works,
since these operators are now non-trivial and can't be used as examples
of trivial operators. But we've decided it's worth it.
Inputs on the right side of the operator are not marked with PARAM
(which denotes a haste input). This fixes the display of the variable
operator so that the text on the right is displayed white and not cyan;
which matches Orca.
Faster than the bit twiddling, given the types of data and programs we
have now. Also means we can drop the distinction between 'safe' and
'unsafe' indexing when bounds checking is or is not required. Also now
gives consistent results with orca JS for 'strange' symbols like :, ;,
etc.
Old orca-c feature that is not present in orca JS. This was using up the
'!' glyph, which we'll need back for MIDI CC. It was also using up the
'/' input key in the TUI, and added a bunch of stuff to the code that
probably nobody was using.