Fix management of hash db indexes

I have made the following changes:

- Factored code out of hdb_binsrch_open_idx() into a new hdb_binsrch_open_idx_file() function that is now called by hdb_binsrch_open_idx() and hdb_binsrch_make_idx_idx().
- Factored setting of TSK_HDB_BINSRCH_INFO.idx_llen out of hdb_binsrch_idx_init_hash_type_info() and into the new hdb_binsrch_open_idx_file() function.
- Expanded the code in hdb_binsrch_idx_finalize() that closes the old index file so that it also re-initializes all of the TSK_HDB_BINSRCH_INFO fields that hdb_binsrch_open_idx_file() sets.   
- Removed code from hdb_binsrch_make_idx_idx() that closed the index file, since hdb_binsrch_idx_finalize() expects to leave the newly created index file open.  
- Removed code from hdb_binsrch_make_idx_idx() that unloaded the in-memory index of the index, since hdb_binsrch_idx_finalize() expects to leave the newly created index file open.
- Added code to hdb_binsrch_load_index_offsets() to close the index of the index file after it is loaded.

This is how the fields in the TSK_HDB_BINSRCH_INFO struct get set to working values now:

typedef struct TSK_HDB_BINSRCH_INFO {
    TSK_HDB_INFO base;            // Set by tsk_hdb_open()
    FILE *hDb;                    // Set by tsk_hdb_open()
    uint8_t(*get_entry) (TSK_HDB_INFO *, const char *, TSK_OFF_T, TSK_HDB_FLAG_ENUM, TSK_HDB_LOOKUP_FN, 
	   void *);                   // Set by hash database type specific open functions
    TSK_HDB_HTYPE_ENUM hash_type; // Set by hdb_binsrch_idx_init_hash_type_info()
    uint16_t hash_len;            // Set by hdb_binsrch_idx_init_hash_type_info()                                                                                                                 
    TSK_TCHAR *idx_fname;         // Set by hdb_binsrch_idx_init_hash_type_info()
    FILE *hIdx;					  // Set by hdb_binsrch_open_idx_file()
    FILE *hIdxTmp;                // Set by hdb_binsrch_idx_initialize()
    TSK_TCHAR *uns_fname;         // Set by hdb_binsrch_idx_initialize()
    TSK_OFF_T idx_size;           // Set by hdb_binsrch_open_idx_file()
    uint16_t idx_off;             // Set by hdb_binsrch_open_idx_file()
    size_t idx_llen;              // Set by hdb_binsrch_open_idx_file() 
    char *idx_lbuf;               // Set by hdb_binsrch_open_idx_file()
    TSK_TCHAR *idx_idx_fname;     // Set by hdb_binsrch_idx_init_hash_type_info()
    uint64_t *idx_offsets;        // Set by hdb_binsrch_make_idx_idx() OR hdb_binsrch_open_idx() 
} TSK_HDB_BINSRCH_INFO;     

And the index of the index is available as soon as it is created.