memoize now handles NaN; some internal readability changes
Reorganized memoize to return single function; replaced existing optional argument handling with generalized module
added bind and lambda functions as modules