* Merge function with optional argument.
* Align function to 0.5.0 (by replacing callback by Promise.)
* Declare module for easier import.
* Format.
* Update version and author information.
* Use ES6 Promise directly.
Since DefinitelyTyped recommend compilation with `--target es6` and `--noImplicitAny` options.
* Revert "Use ES6 Promise directly."
Projects targeting es5 wouldn't compile due to the leak of ES6 Promise.
This reverts commit 7d022d153c0601384d920671a3150fa7bcacd166.
* Fixed header format.