Recursive goToHistoryState

The isRecursive option of goToHistoryState now does something and handles
concurrent states. 

Now includes tests!