bugfix: pointer to mem possibly freed by realloc()

The array of vnm_db_file_t's was being realloced on growth
*after* pointers to earlier entries had been handed off permanently
to updater threads.  This wasn't apparent earlier because
it's a non-issue if you're only using one database, and even
with more than one, you sometimes get lucky and realloc doesn't
actually move the old ones...

Fixed by using an array of pointers instead of a direct
array of objects.

Change-Id: I684213c0b2e26174630d3a3c7d1b7619b078c9bb