feat: complete 42/42 user story coverage with tested demo data
- Registration: add role field (academic_student/self_learner/teacher),
return user_id, fix auth='public' for Odoo 19, add company_id
- Onboarding: add learning_style as JSON array with validation,
placement_decision field, JSON-RPC routes for OWL wizard
- Student profile: add placement_decision selection, get/set_learning_styles
helpers for JSON array storage
- Portal templates: fix course.description, mod.description,
profile.study_preference, profile.entity_id.entity_type field references
Made-with: Cursor