Make events functions `OnEnabled()` and `OnEnabled()`
protected rather than public.
Move initialization and clean up logic into
`OnCreated()` and `OnDestroyed()` event functions.
Previous description understated the effects of the `allowNegativeDosh`
flag. Effects are much more common and significat that previously
thought because of game behavior on filling ammo for one or all weapons.
`CheckAmmoPickup` effectively only contained another function call
and itself was only called once. As it also didn't add to readbility,
it needed to be removed.
Previous comments explaining the idea behind how `FixAmmoSelling`
works were incorrectly stating that non-default pickup class is only
used to calculate diuscounts, when it was also used to spawn
weapon pickups.
Non-default value of pickup class was used to
spawn pickup when player drops a weapon.
But since we've replaced that class and it doesn't
(or might not) exist on the client - dropped weapons
appeared as invisible.
Catch the moment our custom pickup is spawned and
replace it back with default one.