64-bit: fix a whole load of "error: cast from x to 'int' loses precision"

http://stackoverflow.com/questions/2024895/how-should-i-handle-cast-from-void-to-int-loses-precision-when-compiling

In 32bits, an int (which is a 32bit integer) will hold a pointer value.

When you move to 64bit, you can no longer store a pointer in an int - it isn't large enough to hold a 64bit pointer. The intptr_t type is designed for this.
Merge pull request #307 from archSeer/master

64-bit: fix a whole load of "error: cast from x to 'int' loses precision"
Merged MP's changes to give cmd to SP plus some SP specific changes:
'health' 'force' 'ammo' 'batteries' can all give amounts.
'eweaps' doesn't happen on give all now.
Health is now clamped 1..max
Armor is now clamped 0..maxhealth
Force is now clamped 0..100
Ammo is clamped -1...999 (-1 signifies giving each type its max ammo)
'ammo' without an amount argument now gives 999 instead of max per-ammo type
Batteries is now clamped 0..2500