Extension API

Provides a NodeCG API for extensions to use.

Features include:
- `sendMessage` and `listenFor`. Fixes #41.
- Synced variables, allowing variables to be automatically synced between dashboard clients, views, and extensions.
- Auth check utility function, allowing extensions to provide secure express routes. Fixes #34.
- Extensions can access each other's `exports` via `nodecg.extensions['bundle-name']`.
  - You must first declare the bundles you wish to access in `bundleDependencies` in your `nodecg.json`
- A filtered, read-only copy of the config file, providing basic host and port info, and whether login is enabled.
  - Steam / Twitch client keys are removed.
  - Allowed users are also removed, to protect the listed accounts from becoming targets if accessed via insecure routes.
  - Logging information is removed. A logging API is planned, #50.
- Added `sendMessageToBundle(messageName, bundleName, data, callback)`, allowing messages to be sent to other bundles. Fixes #45.
  - In future, listenFor will need to opt-in to allow other bundles to send messages to it.