Core API: ConsumesService args are classes (#599).

BREAKING CHANGE

The @ConsumesService annotation takes class objects as argument (instead of strings).
This way malformed service specifications are detected early by the compiler
(instead of deploying the plugin and let it wait forever for a service never arriving).

Example (listening for 1 service):

{{{
@Override
@ConsumesService(FacetsService.class)
public void serviceArrived(PluginService service) {
    facetsService = (FacetsService) service;
}
}}}

Example (listening for more than one service):

{{{
@Override
@ConsumesService({TopicmapsService.class, FacetsService.class})
public void serviceArrived(PluginService service) {
    if (service instanceof FacetsService) {
        facetsService = (FacetsService) service;
    } else if (service instanceof TopicmapsService) {
        topicmapsService = (TopicmapsService) service;
    }
}
}}}

See #599.