completed algorithm w for lambda calculus with (named) product types.
created module for cfa.

Signed-off-by: Pepijn Kokke <pepijn.kokke@gmail.com>