Directive to highlight unused tokens through depTree plugin

Closes #207 

Previously we kept track of a count of unused tokens right through the `depTree` service.
This is now driven out to an own directive called `unusedTokenHighlighter` that ships with the `depTree` plugin.

This directive displays the same text as before, but it is now clickable: A click will add styling to tokens (has a default value but can be customized through passing the attribute `unused-token-style="{ key: value }"`)

A tooltip notifies the user that something will happen when he clicks on this element.

In the process of coding this directive better style handling in general was added (check the new functions in the `state` object, how `morph` uses them and new watch behaviour of the `token` directive). 

One more note: This new directive also watches the `head.id` property of a token by creating child scopes for it - very similar to the way the `dependencyTree` directive is doing it. However, we can guarantee here that child scopes are properly destroyed, once we one to a new state object that comes with new ideas.

This leads to several thoughts on this matter: 
- We might not need to reinit such a child scope at all: If state A has an id 'xyz' and state B also has an id of 'xyz', the child scope could be reused. We might only need to keep track of new ids entering and delete watches that aren't used in the new state.
- Still not sure if we have to keep track of this manually or if Angular can do this for us. I am pretty sure it can't - don't see how it would now that such child scopes wouldn't be needed anymore. This means we should also take care of destroying them in the `dependencyTree` directive, but we want to investigate this a little more closely to learn more about our framework. This was already mentioned in #121.