Fixed a bug with creating Player from admin. It is hard to add permissions (these are Tags with a special subsetting). This makes the admin not very useful for creating players at the moment.
Renamed evennia_webclient.js to evennia_ajax_webclient.js to match the script name in the html file.
Run Migrations! Made Tags unique based on the combination of their db_key, db_category AND their db_tagtype fields.
Updated create.create_object to be faster. Made AttributeHandler.add() handle bulk-adding of Attributes and with a slightly more efficient way to create new Attributes.
Some cleanup and making unittests succeed again
Implemented src.utils.spawner along with a test command @spawn. This allows for spawning individualized objects based on a prototype dictionary rather than having to make a new Typeclass for small changes. Allows for setting basid properties as well as Attributes and NAttributes. Supports prototype multiple inheritance (see header of src/utils/spawner.py)
Made the spawner more streamlined, and allowed the @spawn command to access prototypes in a file specified by the optional PROTOTYPE_MODULES setting.
Finalized the spawner API and made the @spawn command also take prototypes directly, e.g. @spawn GOBLIN.
Added recursive loop-detection to the spawner. This should avoid accidentally creating infinite self-references in prototype structures.
Made WHO display Player info, not Character info to un-privileged users, and give more info to privileged users. Resolves #518.
Changed how Tags and Attribues cache and track which objects they use, as suggested in #529.
Changed how lazy-loading of handlers work, using a werkzeug recipe. Much more efficient now.
Started moving tag/attribute handlers to TypeObjectManager as per #529
Fixed outbut listing bug in @set.
Added at_post_disconnect() hook to Player, to allow for clean deletion of players at disconnect (for example for Guest-account implementation)
Added spawner.spawn to ev.py
Merge pull request #9 from evennia/master

Update from original.