The first step to this problem is going to be figuring out the probability that David has the rigged coin, given that he has flipped 8 consecutive heads. As a general rule, if you are dealing with conditional probabilities that look difficult, you should ask yourself "would this be easier if I could flip the conditional around?" If the answer to that question is "yes" then the most straightforward way of tackling the problem is usually Bayes Rule. Let "A" mean the coin is rigged, and "B" be that 8 flips are heads. Then, using Bayes Rule:

Obviously P(B|A) = 1, since if the coin is rigged, we always flip 8 heads. P(A) = 1/129, since there is only 1 rigged coin in the 129. P(B| Not A) = 1/(2^8) since this is the fair probability of flipping a coin 8 times and getting a head each time. And 128/129 is P(Not A) since there are 128 fair coins and 129 coins in total. If you grind out that probability you should get 2/3.

Now that we have the probability that David has the unfair coin, it is straightforward to calculate the chances of another head. 2/3rds of the time, he is for sure flipping a head. 1/3rd of the time, he has a 1/2 chance of flipping a head. So, the probability of another head is (1)(2/3) + (1/2)(1/3) = 5/6.

[Assuming I didn't make any stupid mistakes]