Use a gen_server for exunit formatter dispatch

This is a fairly big patch and I'm not 100% of some details (such as the CounterFormatter returning the number of tests just to satisfy the test suite if a particular option to ExUnit.Runner.run is used).