"target" or "gmcp.Char.Status.target" as fallback

If the autotargeter found no valid targets, the target variable or, if
target is not filled, the gmcp.Char.Status.target value.

There is currently an issue with the gmcp fallback though: if set,
arguments to the kill command are not used, instead only the target is
evaluated. I am not sure if this is a bug or intended feature.

More future improvements contain, but are not limited to, automatic
updating of the target list, if new targets are added to the list of
possible targets.
Change current target list wit additional prio

The current target list is now updated whenever a new item is added to
the priority list. This is not echoed to the client yet though!

Also fixed a bug that made it not echo the updated target list, if new
and old list were different but same length.

Save prio list only when changing instead of on each kill.

Formatting changes.
Further refining of updates to the Target db

Now events will be raised, if new targets are added to the list of possible targets and this thing is in the rom and thusly added to the current target queue.

Also some minor formatting changes.
Bugfix for removing items from the room

Fixed a bug that prevented the basher to remove items from the room
tracker and target list (introduced in 2815f940)
Safeguard against adding a target twice

The last commits made it possible to add targets twice under certain circumstances.
Prevented reordering on receiving an item list

When receiving an item list with a valid target list, it might be
possible to reorder the targets. This commit should remedy that.
Allowing partial area names for the area list

This commit targets issue #2. If a multiple partial names are found, the
filtered list is shown to the user. If no match is found, the message is
shown. With only one match, the prio list for that area is shown.

Area names are now case insensitive as a bonus.