start method
Binds the socket and starts answering requests; completes once the server listens. Throws a PortInUseException when the port is taken, a WebServerException for other failures.
Implementation
@override
Future<void> start() => _starting ??= _bind();