various defintion correction + more tests

- correct onReject typings when onFullFill is 'undefined'
- add onFullFill as optional parameter (to use myPromise.then())
- make cast/resolve/reject parameter optional
- add examples from http://www.html5rocks.com/en/tutorials/es6/promises/