Fixed logic issue when spare is rolled in the 10th frame, made code more expressive, added tests