add alternative solution to "prefix to z-funcion"

Signed-off-by: Andrew Tselischev <andrewtselischev@gmail.com>
Add test suite for 'prefix to z function' program

Signed-off-by: Andrew Tselischev <andrewtselischev@gmail.com>
Multiple changes to alg.[ch]

 * Add s_free() wrapper for free()
 * Update prefix_function() and kmp() functions (untested)
 * Add binary search tree-based "set" datastructure implementation
 * Add Aho-Corasick algorithm implementation
 * Add suffix tree implementation

Signed-off-by: Andrew Tselischev <andrewtselischev@gmail.com>