Store material node position changes

This prevents farming of materials in levels and allows for the transport of materials from one level to another via a player inventory.
Added level removal and addition meta tables

These meta tables are processed on top of the tmx generated node table so we know which nodes to add or remove to each level to maintain states as players pickup and drop items from their inventory.
Missing slash in generated path

Can't believe we never ran into this issue before
Store item position once it has stopped dropping
Make torches in blacksmith level persistent
Bug fix for dropped torches

This is caused by the terribly confusing way we have created projectiles and are storing weapon types and subtypes.
Scroll path compatibility fix
Fix weapon type being incorrect on drop
Drop all items when killed on hardcore mode

We drop all of the player items when they are on hardcore mode where they died. This gives the player a chance to reach their items again if they died in a safe place.
Save item changes in levels along with savepoints
Trigger Player:saveData() on death

Saving player inventory on death also resolves the discrepency with level item changes that are saved.
No need for duplicate player save
Merge pull request #2170 from niamu/level_state

Track inventory pickups and drops for each level
ensure addItem callback is used, if it exists
Merge pull request #2187 from CalebJohn/delete_pickup

Delete Pickups
Store flipped position changes in :draw()

This way we can still match a node to the default tmx file
Merge pull request #2188 from niamu/flipped_weapons

Store flipped position changes in :draw()
Do not offset bounding box if not held by player
Merge pull request #2189 from niamu/nunchucks_bbox

Do not offset bounding box if not held by player
only callback on addItem success