Noema: Local-First Structured Memory for AI Agents