Use strings instead of integers for migration version numbers

- Allows timestamp versions to work on 32-bit systems.
- Fixes #2902.
- Supersedes PR #2368.
Add array notation support for file field names in CI_Upload

Requested in #1691
Make db_pconnect an alias for db_connect(TRUE) and reduce code repetition
Remove error suppression usage from db_connect()
[ci skip] Add a changelog entry