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

If I understand this correctly, I don't understand the point. The `.data` property isn't supposed to be limited to

    { key: key, value: value }

It's supposed to be any arbitrary JSON data. Also, this seems like a point of potential crashes in Oshi. If `data.data` is undefined, then attempting to read from `data.data.key` will crash.