Add full ESDoc annotations, refactor slightly to easy documentation & testing. Merge a few performance fixes from another branch (`memoize()`, etc).
Add full ESDoc annotations, refactor slightly to easy documentation & testing. Merge a few performance fixes from another branch (`memoize()`, etc).

neeharv/preact,neeharv/preact,developit/preact,gogoyqj/preact,developit/preact,okmttdhr/preact-fork