A more thorough version of _.memo that works for constructors and / or polyadic functions: returns a wrapper of the supplied function that stores signature and results of each invocation, returning stored results when signatures match.