Add read/write support for persisting NavigationData in a SQLite
database behind the `sqlite` feature flag.
- Schema lives in a versioned migration applied lazily on every
entry point, with R*Tree virtual tables kept in sync by triggers
so host apps can do fast bbox queries.
- Partitions round-trip by id and source format; cascading foreign
keys make `remove_partition` a one-statement delete.
- Simple domain enums (airspace type, runway surface, waypoint
usage, region, location indicator, AIRAC cycle, magnetic
variation, source format) implement ToSql/FromSql directly; the
two-column VerticalDistance encoding lives in a helper module.
- A new `Error::Database` variant carries stringified rusqlite and
rusqlite_migration errors so the error enum stays Clone/Eq/Hash.
Signed-off-by: Joe Pearson <joe@aeronauticalmaps.com>