Rework __once to manipulate a function directly if possible, to prevent doubling of callbacks. Allow empty return in generators.
Add LICENSE file, standard MIT license