Allow options.type to be a function (constructor) when building.

Expose AbstractAscoltatore so such a function can inherit from it and pass
ascoltatori module exports so there is no requirement on e.g. a mosca app
to import ascoltatori.
Test to check we can get an AbstractAscoltatore instance by specfying the
constructor when building.