extract bonus ball test into its own method and add constants for max frames and last frame index

As per Asta's suggestions. I was using 12 and 9 in a calculation and it wasn't obvious what those numbers meant. I have now replaced them with MAX_FRAMES and LAST_FRAME_INDEX respectively.

I have also extracted the if statement that tests if we are on the bonus ball (so do not calculate further bonuses) into a predicate method `on_bonus_ball?(index)`
add frame object and spec.

This is an attempt to simplify the logic in Bowling class and make the whole thing more readable. I haven't integrated into the Bowling class yet.
rename throws to rolls for consistency
integrate Frame into Bowling

This passes the first spec, but fails on a perfect game.

I have used the Frame class to encapsulate some logic from the Bowling class, making it more readable and friendly to change.
Fully integrate Frame into Bowling class, update Frame specs

Specs pass. Extracted logic into descriptive methods.