Avoiding a segfault due to out of bounds stack size

The parser in geiser-syntax is (tail, but elisp doesn't care)
recursive, and we are setting max-lisp-eval-depth to some, ahem,
heuristic value before starting a read.  For long strings, such as
that returned by the list of identifiers exported by the racket
module, the heuristic was bad enough to produce a value making Emacs
to blow away.

This is just a palliative.  The real solution is turn the recursion in
geiser-syntax--read into an explicit iteration.
Add `dir' file to list the info manual

If a user doesn't want to install geiser, it's possible to run it in
place by loading `elisp/geiser.el' directly.

It's also possible to read the info manual directly but it's
inconvenient to not have it listed when hitting C-h i inside Emacs.

To list such manual, it's necessary to tell info where to look for it.
One way of doing it is adding the directory to the variable
`Info-additional-directory-list'.  But, for this to work, there's need
to be a `dir' file listing the info manual.
Add `dir' to EXTRA_DIST

So the generated tarball from `make dist' will have `dir' inside.
Merge branch 'master' of git://github.com/jaor/geiser
make port-encoding defaults to utf-8