Fixed bug when locating lib dir

Howl uses argv[0] to locate the library directory containing init.lua and others. This, however, is not reliable; under bash, Howl ends up looking in the current directory. This uses the fact that Linux maintains a directory that can be used to easily find the location of the currently called executable. To prevent portability issues, Howl only uses that if it exists. I tried to follow the general Howl coding style. Please comment with any issues you notice.