Make def[x] return the most-valid object type

Not so sure how to put the meta for that.
The tag will now return the most-valid object type, meaning if the
definition is 'p@player', a dPlayer will be return, if it's 'n@1', an
NPC will be returned, etc... if it's unknown, an Element will be
returned.
Also including a public API function to handle it!
Also,  reorganize element.as_ tags, clean their meta, and add a few
missing ones.
Add item.enchantments.level[name]

Quick item enchantment checking tag. Nothing special.
Merge pull request #657 from mcmonkey4eva/master

Pull request for new functionality