gas hash.h tidy

Only inline functions should be defined in hash.h, there's no benefit
in having multiple copies of hash_string_tuple and eq_string_tuple.
Also, use the table alloc_f when allocating tuples to be stored, so
that these functions are usable with different memory allocation
strategies.

	* hash.h (struct string_tuple, string_tuple_t): Move earlier.
	(string_tuple_alloc): Add table param, allocate using table alloc_f.
	(str_hash_insert): Adjust to suit.  Call table->free_f when
	entry is not used.
	(hash_string_tuple, eq_string_tuple): Move to..
	* hash.c: ..here.
2 files changed