Move scheduling optimisation to server package.

This seems more appropriate because the server package is where multiple goroutines first come into play.
The main program is now minimal which is a good thing.

Also rename options.ParseOptions to options.Parse.