If we have already discovered a peripheral, a new "discover" event will just update the state. Also, if duplicates are not allowed, we don't emit a new "discover" event.
Also, the event now contains a Peripheral object instead of its sparse components, and Emitter allows listenting on all event by registering for the "ALL" event.
Initial version of peripheral discoverer app (ported from nodjs noble).