update throttler to use more idiomatic go for closing a channel
update throttle test to always be asynchronous
fix closing a throttled channel right after a put

currently it was possible that a null value was returned if the input
channel was closed right after a put
update code order in throttler

improves readability
update throttler to use pointers instead of an additional bool
minor refactoring for throttler