Physical Properties, Weight, Optimizations, Fixes

- Added support for physics properties (gravity and physics material
using the Physical Properties tool) (toggle using the "Apply Physical
Properties" option)
- Added support for weight (toggle using the "Apply Physical Properties"
option)
- Thoroughly cleaned up and optimized more problem areas (ghost stack)
- Moved halo functionality from TOOL:Think() to PreDrawHalos hook
(TOOL:Think is called way more often than it needs to be to render
halos)
- Removed net messages for sending ghost stack to client (entirely
unneeded)
- Removed server involvement in TOOL:Think() (entirely unneeded)
- Cleaned up TOOL:Think() and prevented doing redundant work on the
ghosted stack
- Cleaned up TOOL:LeftClick() by separating optional functionality like
materials and colors into their own functions
- Added official support for external prop protections/anti-spam addons
by calling hook.Run( "StackerEntity", ent, owner ) directly after a
stacked entity has been created.