make `new` keyword optional internally
wrap service in emitter for 'up' event

Allows the user to easier detect when a service is offline by waiting
for the 'down' even on an instance versus using the browser. The browser
may return multiple services with the same name.