Add indent for `syntax-case*`.
Add contributors to THANKS.md.
Support eldoc-mode. Closes #38.

Thanks for @antoineB for proof-of-concept PR!
Fix typo in THANKS.md.
Add find-signature and use it in ,type

find-signature is like find-definition, but instead of returning the
location of the definition, it returns a string version of the
s-expression for the function's `(name args ...)`.

Now, when ,type cannot find a TR type, nor a contract, it can try to at
least return a signature.

For the future: It would be neat to have a `find-bluebox`, which returns
something like the classic "blue boxes" in Racket documentation. That
is, first the signature, then a list of the argument names again with
the contract (or type) of each, and finally the contract (or type) of
the return value.
Various changes:

- Fix bug with hash-table look-up default value, which was making things
  slow.

- Revise racket-eldoc-function to keep matching while within the
  arguments list, not just immediately after the function name (so you
  can still see it while filling in the arguments).

- Rename `signature` to `type`.
Call `racket-invalidate-type-cache` from `racket-run`.

This avoids stale type signatures. Of course, it's probably bad for
performance considering how many type signatures will _not_ change when
re-running a given program (i.e. all the ones from outside the module).

For all this stuff to work optimally, probably someday there needs to be
some sort of external database of definitions, types, and "blue boxes",
with a smarter update strategy.
Do (set-terminal-coding-system 'utf-8).

See comments for rationale, even though I'm not entirely comfortable
this is the best way to handle it.
elisp-print should nil pun