Add call to wg.Wait() before returning from Serve(), fix test

http.Serve does not wait for requests to finish, so we have to wait
for the GracefulServer's WaitGroup to reach zero, or the process will
exit and in-flight routines will be killed.

Signed-off-by: Evan Owen <kainosnoema@gmail.com>