add broadcast feature (child -> all the other children)

This is the same PR as #11, with the naming convention fix.

Client Message to Oshi Parent:

    {
      type: 'broadcast',
      event: 'event name',
      data: {}, // any arbitrary object
      broadcastToSelf: true/false // should oshi broadcast to this child. Defaults to false
    }

Oshi Message to Child:

    {
      type: 'broadcast',
      event: 'event name',
      data: {},
      source: {
        child: 'web:3002', // or similar "group_name:port"
        group: 'web',
        port: 3002
      }
    }

Since `port` and `groupName` are already properties on the child, let's just use those instead of properties on the config (i.e. `e.origin.groupName` instead of `e.origin.config.groupName`). It's also slightly safer in case there's anyway config could be null (unlikely) or the object was altered.