Use buttons for the warning tree

This makes it easier for tree nodes to have their own active content.
Macro for performing output in an info buffer
Allow trees to have lazily-constructed children

This allows very large trees to be explored, and it also allows
potentially cyclic trees.
Lazily expand children on demand in tree
Greater flexibility to clients of info buffers
Increase the print depth in *idris-events*

This makes some debugging easier.
Simplify protocol for :who-calls, :calls-who
Add file header to idris-core.el
Use Emacs's built-in completions handling for REPL

Now, the same mechanism is used for REPL completion as for in-buffer
completion. This simplifies the code, and it lets alternate completion
interfaces such as ido-at-point also work with Idirs REPL buffers.

Fixes #36.
Merge pull request #114 from david-christiansen/issue/36

Use completion-at-point in REPL
Merge pull request #113 from david-christiansen/whocalls

Ask Idris for which functions call which other ones
Simple, hacky imenu support via regexps
Merge pull request #115 from david-christiansen/imenu

Simple, hacky imenu support via regexps