Fix bugs in aggregator and filters, add initial tests

From the individual commits:

Close() was not synced through the main dispatcher loop, so it could close
channels that were currently being written to by methods called from said
dispatcher loop. This leads to a crash. Instead, Close() now writes a
closeRequest, which is handled in the dispatcher.

Fix regex filters to match complete string.
If someone specifies
    
  service = "foo-service"
    
...they probably don't want it to match:
    
  service = "foo-servicebar"