2: Does a player have to say "I'm playing this spell before, or after combat damage was assigned"?
No. The usual way to do this in the combat phase is that the active players asks "Combat damage on the stack?". This indicates that he hands over priority to the opponent. Then the opponent can choose to fire of spells / abilities (like your opponent did using the bolt), or wait until after combat damage is on the stack.
"No" while technically correct, doesn't really tell the entire story, and the "usual way" really holds little meaning unless both players are making use of that specific way.
Whenever you play anything, you need to be clear about when it's being played. Sometimes this can be done without saying anything at all. If you just drew a card for your turn and then play a forest, it's rather clear you're playing that forest during your first main phase. Playing something after blockers are declared won't be so clear-cut without saying something.
Just the same, when your opponent plays something, if he's not clear about when he's playing it, you need to ask him to clarify. Players being unclear about when things are being done generally requires a judge's intervention and may lead to undesirable results when the judge has to decide what was done when based on how he sees things.
An extension of this, which I see come up far to frequently; if your opponent is unclear about something, that doesn't mean you get to make the decision(s) for him. When you tell a judge, "He wasn't entirely clear, I thought he was doing..." the judge won't be telling the opponent, "You made it look like {whatever} so that's how it is," he'll be telling you, "If it wasn't clear, you need to ask him to make it clear."
So, to sum up in a simple statement:
Announcing everything isn't required, but being clear (which often does require announcing) is required.