Currently weapon input is applied immediately when it arrives at the server, while hook/movement inputs are buffered and not applied until the tick the client predicted them for. This pr makes the server use buffered inputs for weapons as well, to ensure that inputs are in sync, and delays weapon inputs by the same number of ticks as other inputs if the input arrives early.
The physics and timing of weapons should otherwise be unchanged (the code in server.cpp was a workaround in an attemp...