change Tag::getTagName() into Tag::getName()

This change follow the coding standards chosen for the project
(see doc/cpp_coding_standard.pdf for further informations)
add TaggerException class
change required item interface in Tag template

The template needs a getId() method in the item interface instead
of the previous getName() method.
The getId must have the folowing signature :
const string& getId()
remove the Tag reference management on Tag destructor

The tagged item may not maintain Tag reference lists. If it is the case
the Tag destructor has to be wrapped into an other function and reference
management should be done there.
make Tag uncopyable.

Ensure Tag structure consistency. The goal of the tagger package is to
group Tag items under the same Tag to make fast research on given Tag.
If a Tag is copied it would break Tag based search and doesn't have much
sense.
change Tag data structure from vector to map