Handle Ledger

We manage several lists. The free_list contains all the valid handles. The recently_freed_list contains handles which have been freed, but possibly before some expire time has passed. The overflow_list holds freed handles while items on the recently_freed_list wait for the expire time to pass.

We save our state by writing out and reading from the three TROVE_handle members, making use of the higher level trove interface.

struct handle_ledger {
        struct extentlist free_list;
	struct extentlist recently_freed_list;
	struct extentlist overflow_list;
	FILE *backing_store;
	TROVE_handle free_list_handle;
	TROVE_handle recently_freed_list_handle;
	TROVE_handle overflow_list_handle;
}