Add solutions and unit tests for chapter 9: Recursion and Dynamic Programming