Use get_random_neighbor for map loot
Add another int to Event_Component to better handle loot

This means less conversions from string to int when dropping loot.
Move parsing of "loot" event components to LootManager
Consolidate checkMapForLoot and determineLootbyEnemy into a single func
Allow dropping random loot with quest loot

This commit also prevents dropping multiple loot stacks on the same tile
by temporarily blocking tiles that already have loot on them.
Pass Event_Component list for parseLoot by pointer instead of reference
Add support for loot table files

Loot table files must be placed in a folder titled "loot" in the base of
the mod directory.

Here is an example loot table file that uses both shorthand and long
form notation for loot:

```
loot=currency,25,1,100

[loot]
id=1
chance=10
quantity=1,2
```

Please note that shorthand usage can not happen after any [loot]
definitons.

To use loot tables, simply refer to them when defining "loot" keys in
map/npc events or in enemy definitions, like so:

```
(generic low-level loot)
loot=loot/low_level.txt

(dagger)
loot=32,5,1
```
Add drop_max and drop_radius options to engine/loot.txt

- drop_max specifies the maximum number of rolls that occur when we drop
loot. If we have a drop_max of 4, this means we can potentially drop up
to 4 pieces of random loot in a single loot event. "Fixed" loot is
unaffected by any of this.
-drop_radius is the distance (in tiles) from the point of the loot event
in which loot can drop. By default this is 1, but as drop_max is
increased, it may make sense to increase this value.
Support loot table files for repeated loot

This allows us to have lines like:
```
loot=currency,fixed,50,100;loot/leveled_high.txt
```

Note that the loot table file must come last, and as such, only one loot
table file is supported per `loot=` line.
Handle multiple loot table files in a single "loot=..." line
Merge pull request #1183 from dorkster/loot_change

LootManager improvements