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

I believe this should be `origin.groupName` not `origin.group`. Please verify. Also, origin could be considered redundant since you could get the same values from `message.source.group`.