Fix NSException thrown when opening impact fast more than once.

When calling openImpact twice in a row an NSInvalidArgument 
was thrown from trying to present an active UIViewController. With this fix the isOpen is set before the functions synchronous part returns and thus preventing the double open.