Always return original return value

I needed my `once()`'ed function to continue returning the original return value of the first function call so I made these changes:

 * Change `once()` so that when it is called for the first time the return value of the original function is saved in `fn.value` and any subsequent calls will continue to return this same value.

 * Add a test for this behavior.

 * Document this behavior in the readme.