implement Fibonacci tail recursion

Tail recursion is way faster/more efficient than regular recursion. Noticeably so for inputs bigger than 30. If you trace through both methods for small inputs you'll see why.