Refactoring: moved initial parts of PM_PlayerMove out

This is to avoid recomputations, and it is more accurate this way.  More
importantly, notice the PM_CatagorizePosition.  Previously, things can go wrong
if this function changes pmove->onground.  Also we want to avoid calling
PM_ReduceTimers multiple times.
Refactoring: removed unused "qboolean server"
Make db4l more robust, stop accidental tas_cjmp decrement

There is a hidden bug in the previous code: tas_cjmp is decremented even if no
jump is actually made.  With some refactoring this bug is now eliminated.
Jumping is now impossible inside first "if" block, therefore we no longer need
to play the jumping sound.
Fixed a bug that makes db4l fail when tas_db4l == 1
Stop unwanted tas_cjmp decrement in PM_LGAGST, refactoring

The code that prepares for perfect strafing in PM_PlayerMove is moved out to a
separate function, so that it can be called by PM_LGAGST instead of the whole
PM_PlayerMove function.  By doing this way we can prevent tas_cjmp from being
decremented even if no jump is made (e.g. when the speed is lower than AGST).