Made arrows much less glitchy

By implementing the arrow code directly, EntityFlyingCarrots are much
less unstable and no longer spawn inside the player. Also method changed
for explosion, now only occurring when landing on the ground. No longer
immediately destroying arrows on explosion. Explosion size affected by
initial velocity.