Change the way the data is held in memory

The previous implementation was very inefficient RAM-wise. By making the
entry structure data agnostic, I expect a 9 fold decrease of RAM usage.

The main structure has been renamed search because it makes more sense.
The next patch will cover all renamings and tweaking necessary to making
this new structure layout work.
Modify ngp to accept the data layout from prev. patch

See previous patch for more info.
sprintf becomes snprintf and we don't segfault

Yeepee
Remove double mutex init
Remove magics

Also rename NAME_MAX to LINE_MAX
Remove unused variables
sanitize_filename is no longer needed

I wonder why ?
Make ngp search agnostic

"search" is being replaced by "current" or "mainsearch" where relevant,
where current is a pointer on the search structure.

This will allow search structures to have children in later patches,
thus enabling the search in search mechanism.
Add missing includes
Add search in search

Also correct pthread/pid
Also correct some whitespaces/tabs
Display search status and hits in top right
Don't display empty files in search in search mode
I'm part of something

42
Fix memory handling mistakes
Make clean_search more generic
Tempfix for segfaults on exit

Segfault on exit was due to mainsearch being static and thus non
freeable. Maybe mainsearch should be allocated like the rest of the
structs.
Remove some magics in subsearch
Fix color bug when a folder is in the first 2 lines
Divide subsearch function into distinct functions