splat.gen.Generator: remove time_stretch

Remove the time_stretch feature altogether as it's causing
too much complication with signals and time modulations.
Each splat can do this in their application code if necessary.
dew_drop.py: remove time_stretch and adjust times
_splat.c: implement signals in Fragment.mix levels

Now the levels used in Fragment.mix can be signals with time
reference based on the destination Fragment instance.  This
allows modulation over several small Fragments such as when
mixed by a Generator.

+ add splat_zero as a module constant Python object with
  the value of 0.0 for default object argument value

+ update Fragment_mix docstring accordingly
splat.gen: fix kw in SourceGenerator + add mix_levels

* do not pass **kw to the source in SourceGenerator as
  built-in sources do not accept keyword arguments

* add mix_levels kw to Generator.run to pass to
  gen.frag.mix to enable global amplitude modulation

+ update Generator.run docstring
_splat.c: allow levels to be a single signal instead of tuple

Alow levels to be either a single or a tuple of signals (floats,
callables o fragments).  When a single level is provided, the
same is used for all the channels in the associated fragment.
_splat.c: add origin to signals and sources

This is mainly to enable continuous signals across several
fragments that are then mixed at different absolute times.
Previously, the scope of signals was limited to the fragment into
which a source or any other code was running.

* add origin attribute to splat_signal to set the origin sample
* the origin time must be > 0.0
* _splat.Signal: add optional origin argument and optional phase,
  default phase=0.0
* fix splat_signal_func to start on an arbitrary sample number
* use memcpy and fix splat_signal_frag to start on an arbitrary
  sample number
* update Fragment.mix, Fragment.offset, sine, triangle, square
  and overtones with origin and the new signal iteration style
splat.Signal, splat.gen.*: update calls with origin

* add origin argument to splat.Signal
* pass start time as origin in splat.gen.Generator._run

+ fix splat.gen.Generator.levels.setter to accept any object
test.py: update to use new source and Generator arguments

* remove 0.0 phase arguments in sources as it's now optional
* use single level value instead of tuple when all levels are
  identical
* use new sources signature
doc/splat.rst: remove splat.get_sample_precision

This is now covered in the Audio Sample Format section.  The
function get_sample_precision doesn't exist any more.
build-0011