A typed wrapper around Firestore including a query-builder and an in-memory implementation for testing