Add SICP exercise 4.14
Lots of rewrite and refactor during SICP ex4.16 preparation
Add SICP exercise 4.16
Add SICP exercise 4.17
Add SICP exercise 4.18
Add SICP exercise 4.19
Add SICP exercise 4.20
Add SICP exercise 4.21