Refactor ImagesRenderer to avoid flickering

[#57495138]
Add .color2number() function to color tools (useful for pixi renderers)

[#58090222]
Add a new benchmark - "200 Atoms with Vectors"

[#58090222]
Render velocity vectors using PixiJS (WIP - no arrowheads yet)

[#58090222]

This is the first approach - using Pixi Graphics API.
Implement velocity vectors using Pixi.Sprite

[#58090222]

They are faster. Of course code will need to be cleaned up when we are
100% sure that it's a better approach. Now it's a useful reference.
Merge pull request #52 from concord-consortium/fixed-image-renderer

Fix flickering of images in md2d

[#57495138]
Fix model-binding bug in MD2D, Energy2D benchmarks

[#59595974]
Fix live drag on iPad

[#59649088]

It seems like constant changes of document.cursor style were causing
some issues.
Optimize lines rendering (do not remove all lines during each .repaint())

[#59598978]
Rm depreciated code from MD2D renderer (gradients)
Use .batch() in "onDrag" script in "Direction of Force Around a VDG"

[#59598978]

It should reduce number of repaints by ~3.
Render velocity vectors arrowheads using Pixi

[#58090222]
Rm old code used to render vectors using Pixi Graphics API

[#58090222]

It was just an experiment and it turned out that Sprites are faster.
Generalize vectors renderer (so e.g. we can use it for force vectors too)

[#58090222]
Render force vectors using Pixi

[#57911040]
init parentMessageController singleton only once!

[#59667208]
Make vectors renderer completely generic

[#59735864]

It will help to reuse it for electric field rendering.

Note that it's a slightly different pattern - vectors renderer
doesn't know *anything* about model, svg container etc. It just
receives Pixi container and very specific configuration which
describes single vector.

Also note that property observing and update of vectors is moved
to main MD2D renderer.

If you accidentally see this commit message, I would be grateful
for feedback. :-) This pattern will be definitely useful for vectors
rendering, but I'm thinking that it can be better approach in general.

Especially management of property observing inside MD2D renderer.
I guess that MD2D renderer which manages all of sub-renderers has
a better knowledge what should be updated and when.

If we keep such functionality to sub-renderers, they will be tightly
coupled with model and our property system (what's not so bad), but
also many operations can be redundant. E.g. if two renderers observe
the same property, they can request canvas repaint twice.
MD2D renderer can manage it more efficient.
Vectors Renderer: support varying alpha per vector

[#59735864]
Render electric field vectors with pixi, use generic VectorRenderer

[#59735864]
MD2D Renderer: cleanup old SVG vectors rendering code

[#59735864]