solver: add basic solver, hash and bigmem cache
utils: add stringf function to make formatted text

Use the printf family instead of the print with packed argument.
todo++