Move "start server" code to run.go
Return error if Run fails + more reorganizations

run.go is a mess this commit is part of cleaning it up but it still
needs a lifting (esp the tls code holy moly)
Put all server init code in NewServer

guarantee a server is always initialized (if created properly) and
obseletes initServer method
Move run fcgi / scgi code to run.go
Return error status from all Run functions