Add getInititalData() to Store

Add the `getInitialData()` method to Store as mentioned in #44.
This method is called when an optional third argument is provided to `listenTo` in a React Component using the `ListenerMixin`.

Example:

```javascript
var aStore = Reflux.createStore({
    init: function() {
        this.listenTo(anAction, function() {
            this.trigger('not initial data anymore');
        });
    }
    getInitialData: function() {
        return 'the initial data'; // Can also return a Promise
    }
});

var Component = React.createClass({
    mixins: [Reflux.ListenerMixin],
    getInitialState: function() {
        return {};
    },
    componentDidMount: function() {
        this.listenTo(
            aStore, 
            changeCallback, 
            changeCallback // This callback is optional, execute getInitialData from aStore
        );
    },
    changeCallback: function(data) {
        console.log(data);
        this.setState({
            data: data
        });
    }
});
```

TODO:
- write the tests
Since this part of the `listenTo` method (`L24-34`) is exactly the same in both `createStore` and `ListenerMixin` it'd be nice to have this extracted to a function in `src/utils.js` (in order to avoid double maintenance).

Something like `_.handleInitialData(listenable, initialCallback)`.