Fixed a bug with drinking empty drinks

Added a return case for OnPlayerEat and OnPlayerEaten, if a callback
returns 1 the action is cancelled. This is used to cancel the drinking
of bottles and cans if they are empty.

Made food consumption only possible while idle, this disables the
ability to tap the interact key with a drink to consume it faster.

Updated the IsPlayerIdle function slightly.