67 check mount when setting state

Fixes #67
> Sounds slick, but not very predictable.

From [jQuery.ajax()](http://api.jquery.com/jquery.ajax/):
> error
> Type: Function( jqXHR jqXHR, String textStatus, String errorThrown )
> Possible values for the second argument (besides null) are "timeout", "error", "abort", and "parsererror".

Seems to me like you can reliably tell if the request was aborted.

> It becomes coupled to the way jQuery wraps Ajax requests

You're using jQuery to do requests, of course you're coupled to it.

> It has the expectations that Ajax requests [...]

This is valid.

> It seems like a React flaw if you can't tell whether or not a component is unmounting (and, in this case, whether or not it's OK to setState).

Maybe React is missing that feature, but we're doing `setState` in a `WillUnmount` handler which is pretty crazy. And in all fairness, `isMounted` was doing its job -- the component still has DOM inside the `WillUnmount` handler.

> At this point it seems the solution needs to be a clear and simple one: Add a flag like _componentIsUnmounting: true on the instance directly and check for it in the error callback.

I think I found a better way to do this. Wrap the `.abort()` call in a `setTimeout(0)` call. This way, the abort action will go to the end of the event queue. Before that event is reached the component will finish unmounting because it's the current event in the queue. Now the response from the request can either come after the abort event, in which case it won't come at all, or it has just been queued after the unmount event, in which case it will execute before the abort event but after the component has been unmounted. This way you need to guard it as well with an `isMounted()` call. See http://jsbin.com/mufaye/1/edit?js,console,output for more details.