Fixed offset bug in sign entities.

Existing signs' text will not be moved - this fix only applies to
newly-placed signs (or at leasty, newly-spawned text entities e.g. after
/clearobjects followed by punching).

Also, made a few functions local that didn't really need to be global,
some minor re-arranging of the code to accommodate the above and to tidy it
up a bit.