Optional promise in getInitialStateAsync

Resolves #23.

```javascript
getInitialStateAsync: function() {
    return myPromise; // the state will merge the resolved object
}
```

Need a custom state key?

```javascript
getInitialStateAsync: function() {
    return myPromise.then(function(value) {
        return {
            customKey: value
        };
    });
},
render: function() {
    return React.DOM.div(null, this.state.customKey.propA);
}
```

The node-style callback still exists.