patch 8.1.0785: depending on the configuration some functions are unused

Problem:    Depending on the configuration some functions are unused.
Solution:   Add more #ifdefs, remove unused functions. (Dominique Pelle,
            closes #3822)
diff --git a/src/hashtab.c b/src/hashtab.c
index bc86a07..6f2c2ca 100644
--- a/src/hashtab.c
+++ b/src/hashtab.c
@@ -81,6 +81,7 @@
 	vim_free(ht->ht_array);
 }
 
+#if defined(FEAT_SPELL) || defined(PROTO)
 /*
  * Free the array of a hash table and all the keys it contains.  The keys must
  * have been allocated.  "off" is the offset from the start of the allocate
@@ -103,6 +104,7 @@
     }
     hash_clear(ht);
 }
+#endif
 
 /*
  * Find "key" in hashtable "ht".  "key" must not be NULL.
@@ -178,6 +180,7 @@
     }
 }
 
+#if defined(FEAT_EVAL) || defined(FEAT_SYN_HL) || defined(PROTO)
 /*
  * Print the efficiency of hashtable lookups.
  * Useful when trying different hash algorithms.
@@ -194,6 +197,7 @@
 				hash_count_perturb * 100 / hash_count_lookup);
 #endif
 }
+#endif
 
 /*
  * Add item with key "key" to hashtable "ht".