hashmap: free both key and value if specified in construction

Hashmap's can automatically free both the key and the value for their
items, the behaviour being controlled in the construction of a new
hashmap (buxton_hashmap_new())

This commit enables automatic freeing of the key and value when
buxton_hashmap_del is caused, ensuring any associated memory
is automatically freed.

Signed-off-by: Michael Ikey Doherty <michael.i.doherty@intel.com>