Add multi branch integration test

This adds a multi-branch integration test to the current suite.  The only major change is that the test server is now started via `fork` instead of `Thread.new`.  This was required due to GIL locking issues.