Always return original return value

I needed the onced 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.