Text Billboard entity

* adds a new entity type of "Text" which allows you to place a billboard with text on it. Similar to the 3DText overlay except that as an entity it's persistent and supports all the features of entities.

* cleans up the EntityItemProperties code a bit by using some macros for common/repeated per property operations.

* fixes some warnings