SICP 2.28: Flattening Nested Lists