ReactTransitionGroup can handle components being re-added before 'leave' transition has completed.

It's quite possible to end up with DOM elements within ReactTransitionGroups staying behind despite the leave transition having ended.  This occurs when calling render which then attempts to add the same element to the Group at the same time as it is being removed/transitioning-out. 

These elements remain behind, with their class forever set to  '<i>name</i>-leave <i>name</i>-leave-active'.  In this instance I simply remove the 'leave' classes and re-add the 'enter' ones if necessary, to make the elements nicely reverse their animation/come back into view.

Fixes #649.

PS: I've signed the CLA with this github username.