implement "preload" method for entity Scripts

The main feature this adds is the "preload" method for entity scripts. Basically this method will get called as soon as possible... which usually means:
* when the entity is created by the editor
* when the entity is first "viewed" when loading the scene
* when the script changes on the entity

This PR also includes a couple of handy helpers that may be useful in other future work
* adds a signal to the EntityTree that will fire when an entity is added (either by local edits or by streaming from the server)
* adds a signal to the EntityTree that will fire when an entity has it's ID changed (this only occurs when a local edit creates a new entity, and then the server sends it's authoritative ID moments later).