Updated .gitignore feature to allow custom ignores

Instead of completely recreating .gitignore files when needed, tup now
uses the line `##### TUP GITIGNORE #####` to designate user created
ignores and tup generated ones. Everything above the line is copied
to the new gitignore file, and everything below it is regnerated. This
allows users to add their own files to ignore directly into a project's
.gitignore file.
Added t4158 - make sure 'tup' doesn't go into infinite loop on Windows.
Added t4159 - test for Tupfile.ini
man page: Remove condition that outputs must be in the current directory.
Added t4160 - use %O with outputs in other directories.

Fixes issue #150
Added a Lua examples page covering most of the current Lua documentation.
Small documentation changes.
Tested frule inputs and outputs as a single string argument - failed, removed from documentation.