core: set "callback_free_value" directly in hashtable without calling function hashtable_set_pointer
core: add "callback_free_key" in hashtable
core: check that value is not NULL before calling free in hashtable_free_value
core: change type of hashtable key hash to unsigned long, return item pointer in functions hashtable_set(_with_size)

The key hash has been changed from unsigned int to unsigned long, and now the
callback can return any value (not only between 0 and size-1), the modulo is
computed after the call to the callback by the hashtable functions.

Functions hashtable_set and hashtable_set_with_size were returning 1 if OK,
0 if error. Now they return pointer to hashtable item, or NULL if error.
core: update ChangeLog with changes on hashtables
core: optimize the removal of lines in buffers (a lot faster to clear/close buffers with lot of lines)

The update of variables "buffer_max_length" and "prefix_max_length" in struct
t_gui_lines is now delayed and made during the main refresh (in main loop).

For a buffer with 50K lines, it is up to 3300 times faster to clear/close it.
For a buffer with 4096 lines (default limit), it is up to 120 times faster.
core: fix random crash on "/buffer close" with a buffer number (or a range of buffers)