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:

```js
{
  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:

```js
{
  type: 'broadcast',
  event: 'event name',
  data: {},
  source: {
    child: 'web:3002', // or similar "group_name:port"
    group: 'web',
    port: 3002
  }
}
```

I don't think that's a valid argument. If the message structure changes, other processes which rely on the structure will also break. So, we should never be changing the structure in a non-backwards compatible way anyway.