Add a new reload event, which is dispatched when a reload is required.
This will allow the app to take care of any necessary cleanup/logging.
Merge pull request #51 from DavidCPhillips/master

Add a new reload event, to help apps track forced reloads.
Provide UMD compatibility.

* Ensure build output is wrapped to support both AMD (e.g. RequireJS) and
  CommonJS (e.g. Browserify) module formats.
* Use a dedicated wrapper.js file since the complexity has grown.
* Streamline how the API is defined for both the main and bootloader binaries
  to reduce boilerplate.

Closes #40.