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
      }
    }

The idea behind the redundancy is that the message structure can be updated without compromising the broadcast mechanism.