fixed capturing strings containing `$'
better error handling

Use make error and warning functions instead just printing messages to
stderr. Use gmk_alloc() instead malloc() to handle memory allocation
errors on make side.
fail on getting substring error
safer message composing
code comments
added global search option
gitignore