Implement a very crude Asynchronous GS #3

* It performs 5 iterations before returning to swap results
Update steady state tests with new tests for varying rates #3
Dynamically choose the number of subiterations for the asycnhronous
solver #3