The Retirement Decision in Germany: A Dynamic Programming Approach