Added docs.
Added previous edge to the EdgeChangeEventArgs class and made the swapping of edges interlocked.