First version of webhooks subscribing to all channels and organized repo

Started using coffee-script, updated the libraries, and now it subscribes
to all channels under 'bigbluebutton:*' so we can receive all events that
happened and select the ones we want.
Webhooks posting all events to all callbacks registered

First step toward allowing callbacks to be called for all meetings in a
server, not for only a single meeting. Will need to change the way data
is stored on redis to improve the webhooks app, but it already works the
way it is now.
Webhooks: filter the events we want to generate callback calls for
Webhooks: first version of a queue to retry callbacks

Simple queue that retries to emit the callbacks in case they fail. A lot to
improve yet, but the basic is working.
Webhooks: overall improvements in comments and prints
Webhooks app will now have a web server, reorganizing it

It will receive API calls to deal with web hooks to make it independent from
other components such as bbb-web.
Webhooks: basic routes and checksum calculation
Webhooks: add config file for nginx

To proxy API calls to the webhooks app.
Webhooks: implement subscribe and unsubscribe API calls

Saving subscriptions to a local database for now.
Webhooks: use hooks in memory when generating callback calls
Webhooks: block multiple subscriptions to the same callback URL

Will allow only one subscription to a given callback URL. If trying to
subscribe again to the same URL, will return success but with a message
saying the callback URL is duplicated, very similar to the response of
create when called multiple times.
Webhooks: sign callback calls with a checksum

Simple signature done initially in a way similar to how bbb-web does it.
Webhooks: fix callbacks being called multiple times
sending the externalMeetingId from bbb-web to bbb-apps, so bbb-apps can use it on redis pubsub message meeting_created_message
Merge remote-tracking branch 'mconf/external-meeting-id-into-apps' into webhooks-2.0
Webhooks: keep a mapping of internal and external meeting IDs
Wehbooks: hooks can now subscribe to a single meeting

Hooks can be global, to receive events from all meetings, or can receive
events for a single meeting. Depends on whether the meetingID parameter is
informed or not in the hooks/subscribe API call.

Also improved the log messages a bit.
Webhooks: use more "hook" and less "subscription" for consistency

It now creates and destroys hooks instead of creating and removing
subscriptions.
Webhooks: implement the API method to list available hooks
Webhooks: store meeting ID mappings in a global model