Added isMounted check and component event cleanup

This solves 2 issues...

The first was introduced in my last PR, as you cannot `setState` on an unmounted component. I have fixed this by adding an isMounted check before calling `setState` on a store change event. This should not be a problem, as should the component mount again, `getInitialState` will take care of retrieving the latest data from the stores.

The second was an existing [issue](https://github.com/deloreanjs/delorean/issues/20) where components were not cleaning up after themselves when unmounting. Node's `eventEmitter` was complaining about a memory leak in cases where a component mounts and unmounts a number of times. (ie the change event was being applied repeatedly without ever being removed).
I'll add that this check probably isn't necessary now that components unbind from the change event on stores when unmounting, but I figured it is better to be safe here and make sure `setState` can never be called on an unmounted component.