Issue #273 #274

* Implemented Votes and service to manage them
* Refactored cache methods. Placed in its own class
* Added eventDispatcher with comment and votes events
* Added eventListener for empty cache
* Tested component and bundle
`VotableTrait` (o some role interface) ?  A strategy? The problem with the `VotePackage` is that it computes the aggregate (sum) of the votes each time. It relies on `AbstractCacheWrapper` and voting up or down means changing the calculated aggregate in the cached object or a whole new run of `getCommentVotes`.
Anyway, it's better to open a new PR for discussing this topic