event aggregator utility update

- firer now uses static assert to prevent firing non-empty events as
  singletons
- subscriber no longer uses boost bind (but lambdas)
- aggregator uses private default constructor rather than empty manual one