Removed extra async step in channel actions.
Changed timeout to a one shot. Also added a method called 'timeout'
which can be used to send a value to the receiving channel with a
delay.
Changed debounce to an object method instead of a class method.
This helps code brevity.
Small refactoring of .fill() method.
MAJOR: Renamed '.buffered(N)' method to '.buffer(N)'.
Also renamed '.expiringAfter(N)' to '.expiringBuffer(N)'
and similarly 'droppingAfter(N)' to '.droppingBuffer(N)'
to indicate that they both buffer values.