1) Better register failures and event loss.
   - Currently, those are only placed at the logs. Maybe they should also
     be stored on an special table at the database.
   - some events could be silently discarded. Need to review the error paths.
   - failures at ras_event_publish() should probably be logged, eventually
     using WARN_ONCE or a rate-limited log.

2) Change the logic to check what CPUs are online, instead of just assuming
   they're in a continuous range. Some care should be taken to preserve
   CPU number if we end skipping offline CPUs;

3) Handle CPU hotplug events at runtime. If a CPU goes offline or returns
   online, rasdaemon should enable/disable a listener to its events.

4) Add support for unsigned integer types at the database abstraction.
   - DB_TYPE_INT32 and DB_TYPE_INT64 are signed, but several event tables use
     them to store unsigned register values. Values above INT32_MAX or
     INT64_MAX are therefore not represented correctly.
   - A DB_TYPE_UINT32 can be mapped without loss to INTEGER on SQLite, BIGINT
     on PostgreSQL and INT UNSIGNED on MySQL/MariaDB.
   - A DB_TYPE_UINT64 needs a representation decision, as SQLite has no native
     integer type capable of storing the full uint64_t range. Possible portable
     representations include decimal text, fixed-width hexadecimal text or an
     eight-byte blob; PostgreSQL NUMERIC(20, 0) and MySQL/MariaDB BIGINT
     UNSIGNED could otherwise provide native numeric storage.
   - Existing table descriptors should be audited and migrated according to
     the actual signedness and width of their source fields.
