Add additional logging statements to Crawler methods
Add check for special dir entries "." & ".."

When checking the entries of a directory, I forgot about the special
cases in Linux directories.  These include the "self-link", and the
"back-link" ('.' and ".." respectively).

Without excluding these files, the Crawler would sit in an infinite
loop rescanning itself, or rescanning its parents before descending
to scan itself.

With this addition, Crawler works when given the PWD, but is still
buggy when provided a directory that's an ancestor in the dir-tree.

The current theory is that this is because realpath uses the
"CWD" to search for the file or directory it's given.  A possible
solution to this is to pushd-popd when entering any Crawler method.
Add isLink() boolean method
Add check to ignore non-file, non-dir objects

Certain functions that are called in lookDir (namely, findAbsPath) require
that the file/dir/object name provided as an argument references a strict
regular file, or a strict directory (no pipes, no soft/hard links, etc).

This was causing run-time logic errors when findAbsPath failed.  Since
these types of files are never code files, it is safe to ignore them for
the purpose of directory crawling.  This commit introduces a check to
see if the file should be 'ignored'.  Only if it is a non-ignored file
does the Crawler object proceed to process it.
Add isValidItem static helper func to Crawler

When a Crawler examines a directory or directory tree for its contents,
only a subset of the found items are valid.  For example, the common
"." and ".." directories are invalid (as theyd create infinite loops),
and most soft links/hard links, pipes, etc are invalid as well.

Crawler checked for these cases, however the code was not clear.

This commit refactors the code by moving the "validity checking" code
to its own method, and rearranging the Crawler lookDir function to
use the added function.