Feature bus multicast & more

>All APIs need to know when a participant disconnects from the bus. Create a multicast channel called "$bus.multicast" where participant join and disconnect events are published.

 - `$bus.multicast` added. All participants anounce connection/disconnection with `connect` and `disconnect` respectively.
 - All api's handle removing their participant references before passing state when unloading.
 - All api's remove watchers of disconnected participants.
 - Names.Api references are removed when participants/routers disconnect.
 - Intent.Api handlers are removed when their corresponding participant disconnect.

**& more**
 - All dynamic nodes are properly moved when API unloading occurs (was not handled previously due to RegExp cannot `toJSON`)
 - Various jshint formatting fixes
 - Added various YUIDOC comments

**follow-up**
>If necessary, disconnect a participant after missing 3 heartbeat cycles in the names.api.- All APIs should join the multicast group.

 Will create new issue. I believe force killing a browsing context (not that which holds leadership) will cause participants to not report their disconnection, thus leaving dead participant references. New issue because the names.api will have to broadcast a special action for all other api's to handle the forced disconnection