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.