Add documentation, restructure, and fix a pointer casting error in flexible-workgroup-scheduling.patch