`getCurrentVersion()` previously returned `int` with 0 used for both
\"empty database\" and \"DB connection failure\". This conflated two
distinct states, causing login to skip auth when DB was unreachable.
Changes:
- Return type widened to `?int`: null = DB unavailable, 0 = confirmed
empty DB (new install), positive int = migrated
- Login controller now returns 503 on null (DB error) before checking
isNewInstall
- isNewInstall gate now uses `=== 0` instead of falsy check
Signed-off-by: Travis Garrison <travis@chiraqbookstore.com>