Major refactoring

- Simplified prototypes for constructors (was completic)
- Rewrote `Promises` implementation, fixes #414
- `promise.outcome` has been renamed to `promise.value`
- Created a `node.js` benchmark for the speed of `Promises`
- Rewrote primary `DataStore` methods to use `Deferreds`