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)


It probably can't happen, but I wasn't sure at that point. There certainly are bugs where you get null items in your inventory, though I guess it wouldn't be too horrible to include those(they'll just not get rendered).