Refactor server.ts into testable startServer() + integration tests
Extract startup logic from server.ts into src/start.ts with an exported
startServer(config, opts?) function that returns a ServerHandle for
programmatic control. This enables testing the full startup sequence
(DB, IPFS, replication, HTTP) in vitest and supports the Tauri sidecar
use case. Add server-startup.test.ts with 5 integration tests, a
scripts/smoke-test.sh for manual/CI smoke testing, and an npm
smoke-test script.