SF: Minor cleanup on horizontal buffer.

* Remove code duplication by checking buffer regain after all other.
	The usual case is that regain is checked anyway.
* Don't use buffer for bunnyfly. Makes tags more unique.
Only allow "lost sprint", if MediumLiftOff is not LIMIT_JUMP.

No reward for attacking entities jumping in/out of water/web/etc.
[BLEEDING] SF(bunny/after failure checks): Alter order and conditions.

Horizontal speed after-failure checks:
* More conditions to confine use more (on-ground, web/fluid/etc.).
* Increase bunny counter during bunny-fly until touching the ground.
* Check bunny fly first and ignore sprinting for that one.
* Attempt to fix "double bunny", i.e. small blocks on blocks.
* Redo part of checking order, do permission checks first, otherwise 
	there might happen unwanted invalidation of velocity.
* Force permission check with the first getting of hDistance on 
	certain conditions, to prevent certain redundant call.