Implement queued jumping

Mechanic as follows:
- Holding down jump while unable to jump makes you jump at the next
  opportunity to do so.
- Does not apply if you release before able to jump.
- Does not apply if you have already jumped per that keypress (just to be
  very specific).
Implementation details:
- Clients send message containing a settings byte to server. Server
  implements and mirrors to all clients, who are expected to implement.
- All clients' settings synced to joiners on FULL_UPDATE.
- No, you cannot bunnyhop indefifinitely out of explosive jumps. That
  would be incredibly imbalanced.
Move settings sync, fix spectating.
Merge pull request #162 from wareya/queued-jumping

Implement queued jumping