buffer: only acquire buffer lock if the buffer is shared

The file backend sets shared at construction and never
changes it, so guarding it is unnecessary.
buffer: remove unused static function
iterator: new state machine iterator
buffer: inherit tile size from backend or source
buffer: unify get_format paths
operations: Fix plasma.c's implementation

- Make it a GeglOperationSource
- Attributing works legitimately
- Don't leak GRand
- Works on R'G'B' instead of RGBA
- Try to stay in 80 columns
- Increase tile size to 512x512 to improve performances
- Some minor format fixes
operations: plasma.c: workshop -> common
Follow plasma.c's location in POTFILE.in
operations: Make plasma.c a more flexible source

... the same way gegl:rectange is.

Also, allow turbulence to be 0.0
operations: Fix inaccurate plasma's descriptions
Port noise-cie-lch to gegl-random
Port noise-hsv to gegl-random