_splat.c: decouple Signal from Fragment

* do not use a Fragment instalce to initialise a splat_signal
  parameters but directly specify the length and sample rate
  values
* add optional signal length when initialising Signal objects in
  addition to a Fragment object for the initial parameters
* add and fix value checks and error reporting
* remove unused splat_signal.error
splat.gen.ParticleGenerator.run: specify freq Signal length
test.py: fix Fragment Signal cases with 1 channel