FR: Thread-safe `repaint`

CAS/RCU seemed like a solution to me at the first glance. However, I soon found that I could not use those techniques. Because of Make isThisTheMessageThread() lock free, I cannot tell whether parameterChanged() is called from the audio thread (in a lock-free way). If it is from the audio thread, I should update immediately (because CAS/RCU both allocates); If it is from the message thread, I should use CAS/RCU. And overall it would make things too complicated.

Since JUCE 9 may have the sample-accurate automation, I would expect things become different so that we can deal with parameter changes in the audio thread. As @eyalamir suggests, perhaps I should also write my own ParameterAttachment with timer/vblank to get rid of those locks.