Refactor iuse [CR]

The "C++ way" is to introduce an interface-class that defines a pure virtual iuse function - and a bunch of different classes that implement the implement.

This PR adds another case to `use_function`: `USE_FUNCTION_ACTOR_PTR` for an instance of that interface mentioned above. And `USE_FUNCTION_NONE` for the simple "You can't do anything with your ..." case (instead of the `iuse::none` function).

The interface introduced here is very simple:
```
class iuse_actor {
    virtual long use(player*, item*, bool) const = 0;
    virtual iuse_actor *clone() const = 0;
};
```
The clone function is needed as `use_function` is copied some times and the alternatives are:
- `std::shared_ptr` (which is C++11)
- A self-written shared-pointer class (re-inventing stuff that already exists is stupid)
- Simply not allowing coping, which does not really work in these use cases.  `item_factory::use_from_string` returns `use_function` and that requires copy and assignment.
- Something else I overlooked?

The `iuse_actor` can technically be extended with a description, visible to the user. Or even more.

Note that `iuse_actor::use` returns a `long` because it's the amount of charges that got used up and charges are of type `long`.

The implementation is compatible with the functions pointers.

----

I implemented a `iuse_transform` actor, as "requested" there: https://github.com/CleverRaven/Cataclysm-DDA/issues/3596#issuecomment-26824152

It has a container, active and target property so far.

It is used instead of `iuse::dejar`.

----

This technically ready for merge. Are there any issues with the naming of the functions/classes?