Add complex dCuboids

dCuboids can now be a list of cuboids rather than a single one - EG, you
can have ten different cuboid regions noted under a single name, or...
whatever use it may have.
Basically just finishing the implementation of the cuboid system.
Also, reverse 'cuboid.is_within[location]' to
'location.is_within[cuboid]' for the sake of clarity (and following the
rules of English)
Also, fix a few location and cuboid handling bugs
Hide item script IDs

Who needs visible item script IDs when we have *not that*?!
Item script IDs are now stored in lore as color codes, based on half of
an MD5 hash of the script name.
Also a little meta patch.
Efficiency - world events

Make world event code a bit more efficient by avoiding Regex's
Efficiency - items

Don't search all entities in the world when constructing items - that's
an unused constructor... there are better ways to do that - should be
able to get the item from an EntityItem via e@entity.x tag (if not
possible, a way to do that needs to be added)
Efficiency - Materials

Use a nice map of dMaterials by name to get them, rather than Java
reflection!
Efficiency - other

- precompile regexes
- also, debug cleaning
Enhance list functionality, meta

- add list.first
- add list.reverse
- add list.insert[item].at[index]
- document list tags better (add examples)
Add complex tag list.sort

- A ridiculously over complex tag that gives scriptors some slightly
lower-level power: they can now use procedures to use internal Java list
sorting... if they can understand the complexities of comparators.
- patch some debug and meta
- deprecate some old Util tags that have no no real need to continue
existing (Fully replaced with exactly matching functionality, in a
cleaner format!)
Add EntityItem property

Needed to go with the scrapping of the (unused) i@eID constructor.
- a property for dropped_item entities - specifically to handle the
items they represent, of course!
- also, make it possible to spawn dropped_items like normal entities (by
calling the .drop function instead of a normal .spawn)
Add EntitySkeleton property

- A property to handle reading/setting whether a skeleton is a wither
skeleton or just a regular one.
- Add some notes about future dEntity property needs
- Delete some old tags that have no reason to exist (overeager property
tag creation - should just be comparing by entity type!)
Add Endermen to the Item property

- Endermen now use the EntityItem property, just like dropped_items
- add some item meta
- remove useless item.is_potion tag (see previous commit)
Add ocelots to EntityColor

Can now use the color property to color ocelots!
That knocks out what I had listed to turn into properties.
Patch up the sign command

More automated dynamicness is better!
No longer takes bad guesses at sign type (at least not /as/ bad
guessing)
also less likely to throw huge exceptions on slightly invalid input
Add PlayerStepsOnSmartEvent

An event for players stepping on blocks! (Rapid-fireish but...)
Also add some new leaves types
Fix another dPlayer name bug

players with weirdly cased names - EG "TheBlackCoyote" wouldn't be
handled properly...
also, getOfflinePlayer(name) was being used.
Now weirdcase names are used, and only getOfflinePlayer(uuid) is used.
Add foreach/repeat next

A way to jump to the next iteration in the foreach/repeat loop!
(Equivalent to Java's "continue;")
Also, fix a bug with scoreboards with tiny names.
Patch player.gamemode.id

For reasons indecipherable to me, "player.gamemode.id" was failing to
return at all. Altering the flow of the tags seems to have fixed it,
despite there not being any reason for that to help anything.
Patch experience command, element#asInt

- Experience command was setting levels wrong (possibly giving XP weird
as well, to-be-dealt-with-later)
- element#asInt should return a proper int even if something like "1.0"
is input
Merge pull request #766 from mcmonkey4eva/master

Pull request for implementing functionality