Added gitignore for the root directory.

Files that can be generated should never get committed.
Added .gitignore for the lfds library.

Generated files should not be committed.
Modified the env.sh script.

Currently, the env.sh script failed when the 'cd' command is overloaded
to print something to stdout. The output of the 'cd' command was
irrelevant to the script, so it is now sent to /dev/null.
Modified the env.sh script to handle symlinks.

This should never ever ever pose a problem,
which means we should definitly account for the posibility that it does.
Extended .gitignore

Editors leave behind some files, these shouldn't be committed.