Added "overlay" functionality for player/NPCs.

New tileset IDs:
- overlay_worn_{ITEM ID}, overlay drawn over the character when the item is worn
- overlay_wielded_{ITEM ID}, overlay drawn over the character when the item is wielded

Yes, this currently requires all character sprites to be compatible. Probably not an issue, otherwise we'll really want to think of a better system than mangling stuff into IDs with `_`.

Tested this by modifying existing tileset.
```json
        {
          "rotates": false,
          "id": "overlay_wielded_crowbar",
          "fg": 2470,
          "bg": 2
        },
        {
          "rotates": false,
          "id": "overlay_worn_sunglasses",
          "fg": 2471,
          "bg": 2
        },
        {
          "rotates": false,
          "id": "overlay_wielded_sunglasses",
          "fg": 2472,
          "bg": 2
        },
        {
          "rotates": false,
          "id": "overlay_mutation_ARM_TENTACLES",
          "fg": 2473,
          "bg": 2
        }
```
Wielded crowbar, worn sunglasses:
![wielding_crowbar](https://cloud.githubusercontent.com/assets/902211/4264353/455e1e80-3c23-11e4-97ab-dae176a6676e.png)

Wielded sunglasses:
![wielding_sunglasses](https://cloud.githubusercontent.com/assets/902211/4264359/62b7a334-3c23-11e4-8483-33f070a4a61b.png)

Tentacle arms:
![tentacle_arms](https://cloud.githubusercontent.com/assets/902211/4264425/eed62ba4-3c25-11e4-95b9-20e77370b1e6.png)


Can this actually happen?  'worn' can be empty, but that results in not entering the loop at all.