_splat.c: add square source + tidy-up

* add `square' source function to generate a square wave
* disable USE_V4SF vectorisation as it's not always supported
* add `min' and `max' macros
* tweak code formatting
splat: add sources.square and gen.SquareGenerator

* import _splat.square into splat.sources.square
* add gen.SquareGenerator to generate square waves
* splat.gen: update docstrings
* splat.gen.ParticlePool: remove noisy log message
_splat.c: add `triangle' source function
splat: add sources.triangle and gen.TriangleGenerator

* import _splat.triangle into splat.sources.triangle
* add gen.TriangleGenerator to generate a triangle wave