optimize onerror and reduce promise creation cost by 20x

- [Promise Creation] rsvp x 10,413,897 ops/sec ±2.52% (69 runs sampled)
- [Promise Creation] rsvp-2.0.4 x 505,280 ops/sec ±2.41% (72 runs sampled)
prefer Promise Construction as declaration
add Promise.cast
Add Promise#finally
Merge pull request #131 from stefanpenner/finally

add support for Promise.cast + Promise#finally
Prefer tasks + config inline within project

grunt-microlib was a good idea, but proved to be
more confusing and hard to work with then expected.

Going forward, we can extract more parts of this build 
setup into modules. But the core config, should likely
continue to remain in the project.

Hopefully this improves hackability.

(@stefanpenner / @njj023)
add grunt-cli
bump to latest promise spec version

- update the adapter
- update some reps
hot fix promise-spec on phantom
fixup package.json
tidy-up RSVP.hash
fix all to work if an array element is null