Changed the NetServer start() and shutdown() methods to use a Promise<Boolean> rather than Promise<Void> so it's easier to distinguish between a timeout, which will return null, and a success, which will return true (otherwise the Promise will be in error and get() will throw an exception).