Add documentation for "crafting_pseudo_item" property of furniture
add documentation to iuse_actor.h and move the function body into a cpp file.
Make iuse_transform simpler:

A default constructor takes care of default initialization of the members. Defaults are good enough for everything except the target type id.
Use the automatically created copy constructor instead of writing one.
Use JsonObject::get_* for mandatory properties and JsonObject::read for optional properties.
Wrap the new iuse_transform object in a std::auto_ptr to prevent memory leaking when the json throws an exception.
Extend iuse_transform to include some often used checks.

1. fire charges available, 2. item has charges.
Add messages for this too.
remove toolarmor_off, oil_lamp_off, gasoline_lantern_off, and light_off

Their behaviour is now fully coded in the json entries.
Added auto_iuse_transform

This class inherits from iuse_transform and is used for active items.
It has special handling for player being underwater and for items that can _only_ transform when they run out of charges (or are underwater).
This prevents the player from deactivating things like lightstrips or flares.
Add target charges to iuse_Transform.

Sets the charges property of the resulting item to the value specified with json.
This allows moving many bomb-activation functions to move to json.
Add explosion_iuse that provides all kind of explosions

It is used as iuse function for activated bombs, has a sound effect and does various explosions and the like effects.
Add parameter to change  Creature::moves to iuse_transform

Allows to export some more iuse functions to json
Create unfold_vehicle_iuse as replacement for iuse::unfold_bicycle

Can unfold any vehicle and restores it properly.
Add explode_in_fire behaviour to items.

Can be applied to every item type.
Merge iuse generification.